C语言,求1到1000的质数

C语言,求1到1000的质数,第1张

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

/*****************************************************************

*本程序用来计算1000内质数有哪些及一共有哪些。

*

*知识点:什么是质数?指仿及只能被本身和1整除的整数。

*

*时间:2018.10.22

*****************************************************************/

int main(void)

{

int i,j,result = 0,sum = 0 //燃凯i-循环变量和被判断数 j-循环变量和判断唯段纤数 result-验证是否为质数的返回值 sum-质数总量计数

for (i = 2i <= 1000i++) //第一个循环用来取出被判断数 从2开始到1000

{

for (j = 2j <= sqrt(i) + 1j++)//第二个循环是用来判断这个数是否为质数并返回,从2开始至被判断数开根后+1. sqrt(i)后面不+1 会把质数2 3丢掉

{

if (i%j == 0 &&i != j) //如果被判断数用2-被判断数来取余,如果余数为0 且不是被自已整除那么这个数一定不是质量直接返回

{

result = 0//判断出是质数后返回前必须给返回值赋0值,0代表非质数 1代表质数

break

}

result = 1

}

if (result == 1) //如果此数为质数 质数总量+1后并打印 把result返回值初始化准备下一个循环判断。

{

sum++

printf("第%d个质数:%d \n",sum,i)

result = 0

}

}

return 0

}

源代码如下:

#include &ltstdio.h&gt

#include &ltmath.h&gt

void main()

{

int n=0, i, j,w,k

for(i=2i&lt=1000i++)

{

w=1

k=sqrt(i)

for (j=2j&lt=kj++)

if (i%j==0) {w=0break}

if (w) {

++n

if (n%10==0) printf("%d\n",i)

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

}

扩展资料

1、素数使用for循环查找2-1000以内的所有素激州数,循环次数为999次,在for循环中添迹世加一个移位寄存器用以存储所有的素数,其初始值为一个空数组。

2、在循环内部逐个数判断是否为素数,若是素数,则使用"数组插入.vi"函数添加到移明州蔽位寄存器的数组中,否则,移位寄存器中的值保留为上次的值。

#include<stdio.h>

int main()

{

int k=0,f=0

for(int i=2i<橘闹桐=1000i++)

{

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

for(int j=2j<ij++)

{

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

}


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

原文地址: http://outofmemory.cn/yw/12568319.html

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

发表评论

登录后才能评论

评论列表(0条)

保存