求一百以内最大的十个素数,并且求和

求一百以内最大的十个素数,并且求和,希望大神来解答一下

#include <stdio.h>

int main(void) {
int i, j;
int count = 0;
int prime = 1;
int sum = 0;
printf("100内前10个素数 ");

for ( i = 100; i > 0; i--) {
    for ( j = 2; j < i; j++) {
        if (i % j == 0) {
            prime = 0;
            break;
        } else {
            prime = 1;
        }
    }
    if (prime == 1) {
        count++;
        printf("%d\t", i);
        sum += i;
        if (count == 10) {
            break;
        }
    }
}
printf("\nsum=%d", sum);
return 0;

}

你可以用两层for循环求从100开始的素数,每次输出,然后将素数与sum累加,当计数器count=10的时候,用break跳出循环。

供参考:

#include <stdio.h>
int isPrime(int n)
{
    int i;
    if (n <= 3)return n > 1;
    for (i = 2; i * i <= n; i++)
        if (n % i == 0) return 0;
    return 1;
}
int main()
{
    int i, k = 0, s = 0;
    for (i = 100; i > 0; i--)
    {
        if (isPrime(i))
        {
            printf("%d ", i);
            s += i;
            k++;
            if (k == 10) break;
        }
    }
    printf("\ns=%d", s);
    return 0;
}