求素数和与素数和的个数

img


怎么才能把1这个特殊值删掉,这样写代码电脑会认为1也是素数。

加一个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的素数。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^