【发布时间】:2020-10-03 13:57:53
【问题描述】:
我真的试过了,但还是不知道我的代码有什么问题。
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
int minus, i, judge;
for (minus = 0, judge = 1; judge == 1; minus++, n -= minus) {
for (i = 2; i * i < n; i++) {
if (n % i == 0)
judge = 1;
else judge = 0;
}
if (judge == 1)
continue;
else break;
}
printf("%d\n", n);
return 0;
}
当我输入 143 时,输出是 143 而不是 139。 但是,当我输入 11 时,输出的是正确答案 11。
【问题讨论】:
-
加油,
n==6,你关心最近的质数是 5 还是 7? -
@chux-ReinstateMonica:如果有两个距离相同的素数,则打印较大的一个。但是由于我在减号部分失败了,所以我还没有开始加号部分。