永发信息网

如何用c语言编写程序输出500以内最大的10个素数及其之和

答案:4  悬赏:50  手机版
解决时间 2021-03-20 04:56
  • 提问者网友:心如荒岛囚我终老
  • 2021-03-19 16:26
如何用c语言编写程序输出500以内最大的10个素数及其之和
最佳答案
  • 五星知识达人网友:woshuo
  • 2021-03-19 18:03
    算法简单,直接从500到1循环,判断每个数是否为素数,如果是素数,输出,并累加,一直判断出10个素数,终止循环,输出累加总数。
    例程:
    #include
    int main(){
       int prime;
       int prime_pti[100];
       int prime_z=0;
       int i,n,p=0;
       int a,b;
       int step=0;
       for(prime=i=1;i<=500;i++)  
       {
          for(n=2;(n*n)<=i;n++)    
          {
             if(i%n==0)
             {
                prime=0;
                break;
             }
          }
          if(prime)       
          {
            prime_pti[p]=i;
            p++;
          }
          prime=1;
       }
       for(a=0;a      for(b=a+1;b      {
             if(prime_pti[a]         {
               step=prime_pti[a];
               prime_pti[a]=prime_pti[b];
               prime_pti[b]=step;
             }
          }
       if(p>9)           
       {
         for(i=0;i<10;i++)
         {
            if(i<9)
              printf("%d+",prime_pti[i]);
            else
            {
              printf("%d=",prime_pti[i]);
              for(n=0;n<10;n++)
                 prime_z+=prime_pti[n];
              printf("%d
    ",prime_z);
            }
         }
       }
       else
         printf("Sorry!
    ");
       return 0;
    }
全部回答
  • 1楼网友:蓝房子
  • 2021-03-19 20:33
#include
int main(void)
{
int n1,i,j,count=0,sum=0,a1=0;
printf("Input n(n<=500):");
scanf("%d",&n1);
for(i=n1;i>1;i--)
{
count=0;
for(j=i-1;j>0;j--)
{
if(i%j==0)
{
count++;
if(count==2)
{
break;
}
}
}
if(count==1)
{
a1++;
if(a1>10)
{
break;
}
printf("%6d",i);
sum=sum+i;
}
}
printf("\nsum=%d\n",sum);
return 0;
}
  • 2楼网友:骨子里都是戏
  • 2021-03-19 19:45
#include 

int isPrime(int);

int main() {
int i = 500, count = 0;
do
if (isPrime(--i) && ++count)
printf("%d ", i);

while (count < 10);
return 0;
}

int isPrime(int n) {
int i;
if (n < 2)
return 0;
for (i = 2; i * i <= n; i++)
if (n % i == 0)
return 0;
return 1;
}
  • 3楼网友:一把行者刀
  • 2021-03-19 19:09
#include 
#include 
int prime(int n)
{
 int i;
 for(i=2;i<=sqrt(n);i++)
  if(n%i==0)
   break;
 if(i>sqrt(n))
  return 1;
 else
  return 0;
}
main()
{
 int n,count=0,sum=0;
 for(n=500;count!=10;n--)
  if(prime(n))
  {
   printf("%d ",n);
   sum+=n;
   count++;
  }
 printf(" The sum is %d. ",sum);
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯