C语言程序设计

计算并输出high以内最大的10个素数之和。
例如:若high的值为100,则和的值为:732。

第1个回答  2010-05-08
#include <stdio.h>
void main()
{
int high,i,sum=0,j,k=0;
printf("input high:");
scanf("%d",&high);
if(high%2==0&&high!=2)i=high-1;
else i=high;
for(;i>1;i-=2)
{
if(i==2)sum+=i;
else
for(j=2;j<i/2+1;j++)
if(i%j==0)break;
if(j>=i/2+1)
{
sum+=i;
if(++k==10)break;
}
}
printf("\nsum=%d\n",sum);
}
第2个回答  2010-05-08
#include <stdio.h>
int fun(int n)
{
for(int i=2;i<=n/2;i++)
if(n%i==0)return 0;
return 1;
}

void main()
{
int a,sum=0,b=0;
scanf("%d",&a);
for(int i=a-1;i>1&&b<10;i--)
{
if(fun(i)){sum+=i;b++;}

}
if(b==10)printf("%d\n",sum);
else printf("%d以内没有10个素数\n",a);
}
我调试过了,应该没问题,你自己看看吧。
第3个回答  2010-05-08
最好是自己能亲自编一下,对你提高会有帮助的,给你提供个思路:先求出上high以内的所有素数,存到一个数组里,再求出这个数组中最大的十个数的和.自己试试吧.祝你好运本回答被提问者采纳