要求:编程计算n(n<=500)以内的10个最大素数及其和,分别输出这最大的10个素数及其和。n的值要求从键盘输入。要求10个素数按从大到小的顺序输出。
---------------------------------------------------------------------------------------------------------------------------------
代码:
#include <stdio.h>
int Issushu(int n)//判断是否为素数
{
int i;
for (i = 2; i < n; i++)
{
if (n % i == 0)
{
return 0;//非素数
}
}
return 1;//素数
}
int main()
{
printf("Input n(n<=500):");
int n, i;
int num = 0;
int sum = 0;
scanf("%d", &n);
if (n < 30)//第十个素数为29,所以30以下可直接输出所有素数
{
for (i = n - 1; i > 1; i--)
{
if (Issushu(i) == 1)
{
printf("%6d", i);
sum = sum + i;
}
}
}
else
{
for (i = n - 1; i > 1; i--)
{
if (Issushu(i) == 1 && num < 10)//输出10个后不在进入判断
{
printf("%6d", i);
num = num + 1;
sum = sum + i;
}
}
}
printf("\nsum=%d\n", sum);
return 0;
}