加一个if(i==1)isprime=0;就好啦
【以下回答由 GPT 生成】
要修改代码,以便不将1计算为素数,可以在for循环中将i的起始值更改为2。这样就会从2开始检查范围内的素数。请看下面的修改后的代码:
#include<stdio.h>
int main() {
int a, b;
int sum = 0;
int count = 0;
scanf("%d%d", &a, &b);
for (int i = 2; i <= b; i++) {
int isprime = 1;
for (int k = 2; k < i; k++) {
if (i % k == 0) {
isprime = 0;
break;
}
}
if (isprime) {
count++;
sum += i;
}
}
printf("素数个数: %d\n", count);
printf("素数和: %d\n", sum);
return 0;
}
这样修改后的代码将不再计算1为素数,只会计算范围内大于等于2的素数。
【相关推荐】