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?
答案 0 :(得分:16)
!(i%j)
与(i%j)==0
相同,或“我可以被j整除”
答案 1 :(得分:3)
以下两行基本相同(就逻辑而言):
if (!(i%j))
if ((i % j) == 0)
我读第一行以使其更清晰的方式是“如果没有来自i/j
的余数”,即i
可被j
整除。