【发布时间】:2020-03-02 19:26:17
【问题描述】:
这是代码的一部分,它只打印出一对素数(1 3)。如何打印出 10000 之前的所有对? (1 3) (5 7)...直到 10000
int paarPrim = -1;
for(int max = 2; max < 10000; max++) {
if(isPrim(max)) {
if(max - paarPrim <= 2) {
printf("(%i %i)", paarPrim, max);
}
paarPrim = 1;
}
}
【问题讨论】:
-
1 不是素数。
-
什么是素数对? (3 5) 不是一对吗?
-
如果你想输出两个一组的所有素数,你可以在检测到素数时输出它们,然后考虑逻辑在正确的位置输出括号。 - 要控制这一点,应该使用一个状态变量
bool inPair。 -
我认为像 (3,5) (5,7) (11,13) (17,19) 这样的输出是有效的。所以实际上是一对相差2的素数
标签: c loops for-loop compilation primes