求帮写一个c语言程序。输出1000以内最大的十个素数及它们的和。要求使用简单的if while 语

求帮写一个c语言程序。输出1000以内最大的十个素数及它们的和。要求使用简单的if while 语句那种的。谢谢谢

#include <stdio.h>
#include <math.h>
void main()
{
    int i,j,a,sum=0,count=1;
    for(i=1000;i>=2;i--)    
    {
        a=sqrt(i);
        for(j=2;j<=a;j++)
        {
            if(i%j==0)
                break;
        }
        if(j>a)
        {
            printf("%d\t",i);
            sum+=i;
            count++;
        }
        if(count>10)
            break;
    }
    printf("sum=%d\n",sum);
}

 差不多就是这样了

追问

sum+=i是什么意思啊。。

追答

求和,计算1000以内10个最大素数之和

追问

谢谢大神。。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-26
#include <stdio.h>
int main(void)
{
int a[500]={0};
int i=1,j,k=0,n,sum=0;
while(i<1000)
{
i++;
n=0;
j=1;
while(j<=i)
{
if(i%j==0)
n++;
j++;
}
if(n==2)

{
a[k]=i;
printf("%4d",i);
k++;
}
}
i=1;
while(i<12)
{
printf("%d\n",a[k-i]);
sum+=a[k-i];
i++;
}
printf("total=%d",sum);

return 0;

}
以上是用if和while实现的求出1000以内的素数。

并利用数组输出最大十位进行求和。排版有乱,不懂得可以追问追问

大神啊。数组[]这种符合我们还没学过呢啊。。这样写容易露馅啊

追答

我有个地方写错了抱歉

i=0; //初始i为0
while(i<11) //i小于十一才能输出最大的十位素数并且计算它们的和。
{
printf("%d\n",a[k-i]);
sum+=a[k-i];
i++;
}
printf("total=%d",sum);

return 0;

如果不用数组只能for循环上了。不知道学过没。我的水平也不行。不过看楼下写的很好。

追问

啊。没事没事,我是纯小白,帮助我就很感激了,我把好评给他了你不要生气啊

追答

哈哈没事问题解决了就行

追问

嗯嗯,真是大好银(≧3≦)