C语言求解!3. 编写一个程序,输出100到500之间的所有素数(质数)。 结果应为:(如图)

4月21号前求解,谢谢!

代码很简单的,在把参考代码改下就可以了

 

参考代码只是判断了 一个 i 是不是素数。所以本题 把参考代码输入的 i,从100循环到500,依次判断就可以了

#include <stdio.h

void main()

  int i,j;

  for(i=100;i<=500;i++)

  {

   for(j=2;j<i;j++)

    if(i%j==0)

     break;

  if(j>=i)

   printf("%d\t",i);

  }

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-18

#include "stdio.h"

int is_prime(int n)//求n是否是素数,是返回1,不是返回0

{

     int i;

     for(i=2;i<n/2;i++)

      if(n%i==0)

        return 0;

     return 1;

}

int main()

{

     int i;

     for(i=100;i<=500;i++)

     {

          if(is_prime(i)==1)

           printf("%d\t",i);

     }

}

结果:

 

第2个回答  2013-04-18

#include <stdio.h>

#include <math.h>

int IsPir(int n)

{

int i;

for(i=2;i<=(int)sqrt(n);i++)

if(n%i==0) return 0;       //若有因子 则不是素数 返回0 

return 1;

}

void main() 

int i;

for(i=100;i<=500;i++)

if(IsPir(i))

printf("%d\t",i);

}


第3个回答  2013-04-18

#include<stdio.h>

#include<math.h>

void main()

{

 int m,i,j=0,k;

   for(m=100;m<=500;m++)

   {

    k=sqrt(m);

  for(i=2;i<=k;i++)

  {

   if(m%i==0) break;

   

  }

  if(i>k) 

  {   

   

   if(j%10==0)

    printf("\n");

   printf("%5d",m);

       j++;//控制换行   

  }

  printf("\n");

   }

}

 

 

 

 

 

第4个回答  2013-04-18
#include <math.h>

int IsSusu(int x)
{
int m = sqrt(x);
while(m > 1)
if (x % m-- == 0) return 0;
return 1;
}

#include <stdio.h>
int main()
{
int i;
for(i = 2; i < 500; ++i)
printf(IsSusu(i)?"%d\t":"", i);
return 0;
}
相似回答