你上面i<=sqrt() 下面又是 i>=sqrt() 可以把下面的改成if (i > sqrt((double)n))
int main() {
int i, n;
i = 1;
scanf("%d", &n);
if (n > 3) {
for (i = 2; i <= sqrt((double)n); i++) {
if (n % i == 0) {
printf("no");
break;
}
}
if (i > sqrt((double)n)) {
printf("yes");
}
} else {
printf("error");
}
return 0;
}
改动处见注释,供参考:
#include <stdio.h>
#include <math.h>
int main() {
int i, n, k; // 修改
i = 1;
scanf("%d", &n);
if (n > 3) {
for (i = 2, k = (int)sqrt((double)n); i <= k; i++) { // 修改
if (n % i == 0) {
printf("no");
break;
}
}
if (i > k) { // 修改
printf("yes");
}
}
else {
printf("error");
}
return 0;
}
【相关推荐】