编写程序输出n以内最大的10个素数及其之和;如果n以内最大素数不足10个,则按照实际个数输出。 输入格式: 输入n的值。 输出格式: 在第一行中输出最大的10个素数,每个素数后面有个空格。在第二行中输出10个素数之和。用C语言写一个程序
时间: 2024-06-13 14:05:01 浏览: 140
一个用C语言编写的程序,用于统计素数并求和.pdf
这是一个C语言程序,目的是计算n(n<=500)以内的最大的10个素数及其和。程序会要求用户输入n的值,然后输出最大的10个素数和它们的和。如果n以内最大素数不足10个,则按照实际个数输出。程序使用了一个Judge函数来判断一个数是否为素数,然后使用一个循环来找出所有小于等于n的素数,并将它们存储在一个数组中。最后,程序按照从大到小的顺序输出数组中的前10个素数和它们的和。
```C
#include <stdio.h>
unsigned short Judge(unsigned short p);
int main() {
short n;
unsigned long Sum = 0;
unsigned short i;
unsigned short j = 0;
unsigned short primes[10];
printf("Input n(n<=500):");
while(scanf("%hd", &n) != 1 || n > 500 || n < 2) {
while(getchar() !='\n') ;
printf("请输入合法数据.\n");
printf("Input n(n<=500):");
}
i = n;
while(i >= 2) {
if(Judge(i) == 1) {
primes[j] = i;
Sum += i;
j ++;
}
if(j == 10) {
break;
}
i --;
}
for(i = 0; i < j; i ++) {
printf("%6d", primes[i]);
}
putchar('\n');
printf("sum=%ld\n", Sum);
return 0;
}
unsigned short Judge(unsigned short p) {
if(p == 1) {
return 0;
}
unsigned short i = 2;
while(i <= p / 2) {
if(p % i == 0) {
return 0;
}
i ++;
}
return 1;
}
```
阅读全文