c语言求质数问题

c语言求质数问题,第1张

#include "stdioh"

void main()

{

int i,j,k,min=2,max=100;

for(i=min;i<=max;i++)

{

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

{

if(i%j==0)

break;

}

if (j > i/2+1)

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

}

}

i/j==0改成i%j==0,是因为判断是否整除要用%

if (j > i/2+1)

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

把这句话提出来是为了防止重复打印

#include<stdioh>

int IsPrime(int n)

{

int i;

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

if(n%i==0) return 0;

else continue;

return 1;

}

int Sum(int n)

{

int i,sum=2;

if(n<2)return 0;

else if(n==2)return 2;

else

{

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

{

sum+=IsPrime(i)i:0;

}

return sum;

}

}

main()

{

int n;

printf("输入一个最大数:\n");

scanf("%d",&n);

printf("比%d小的所有质数之和SUM=%d\n",n,Sum(n));

getchar();

}

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

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

#include <stdioh>

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);

}

}

#include<stdioh>

int main()

{

int k=0,f=0;

for(int i=2;i<=1000;i++)

{

f=0;//置0,用于标记下一个非质数

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

{

if(i%j==0)//,i能被2~i的一个数j整除,就说明 i不是质数

{

f=1;//标记,不是质数

break;

}

}

if(f==0)//未被标记,是质数

{

k++;//计数

if(k%10==0)//质数的个数是10的倍数,换行

printf("%4d\n",i);

else

printf("%4d",i);

}

}

return 0;

}

以上就是关于c语言求质数问题全部的内容,包括:c语言求质数问题、C语言求质数之和、C语言求解!3. 编写一个程序,输出100到500之间的所有素数(质数)。 结果应为:(如图)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9716813.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存