求一百以内最大的十个素数,并且求和,希望大神来解答一下
#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;
}