Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
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;
if (!(i%j)) break;
这是否说“不是 i 和 j = 0 的模数?
!(i%j)与 相同(i%j)==0,或“i 可被 j 整除”
!(i%j)
(i%j)==0
以下两行基本相同(就逻辑而言):
if (!(i%j)) if ((i % j) == 0)
我阅读第一行以使其更清楚的方式是“如果没有余数i/j”,即i可以被j.
i/j
i
j