(!(i % j)) 是否表示不是 i 和 j = 0 的模?
int main()
{
int i,j;
for (i=1; i<=25; i++)
{
for (j=2; j<= i/2; j++)
if (!(i%j)) break;
if (j>i/2) cout << i << "\n";
}
return 0;
}
这个程序(不是我写的)输出从 1 到 25 的素数,包括 1,尽管 1 不是素数。
我在使用此行时遇到问题: if (!(i%j)) break;
这是否表示“不是 i 和 j = 0 的模数?”
int main()
{
int i,j;
for (i=1; i<=25; i++)
{
for (j=2; j<= i/2; j++)
if (!(i%j)) break;
if (j>i/2) cout << i << "\n";
}
return 0;
}
This program (not written by me) outputs the prime numbers from 1 to 25, including 1 even though 1 isnt prime.
I am having trouble with this line: if (!(i%j)) break;
Does this say "not modulus of i and j = 0?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
!(i%j)
与(i%j)==0
相同,即“i 能被 j 整除”!(i%j)
is the same as(i%j)==0
, or "i is divisible by j"以下两行本质上是相同的(就逻辑而言):
我阅读第一行以使其更清楚的方式是“如果
i/j
中没有余数”,即,i
可以被j
整除。The two following lines are essentially identical (as far as logic goes):
The way I'd read the first line to make it clearer is "if there is not a remainder from
i/j
", ie,i
is divisible byj
.