#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
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)