求3到100中的全部素数

2024-11-29 17:31:43
推荐回答(2个)
回答(1):

首先你要明白素数的判断原则:
素数即只能被1和其本身整除的数,判断n是否为素数只需用2~n/2或2~根号(n)之间的数去除就可以了,常用2~n/2,因为一个数的一半的平方大于其本身是从5开始的,解方程:n/2的平方>n 。即一个数n的两个因数不能同时比n/2大。

程序解释如下:

#include
#include
int main(void)
{
int i,j,k;
for (i=3;i<=100;i+=2)//要取的素数的范围:3~100
{
k=sqrt(i); //求取如前面说明的素数判断原则中的根号(i)
for (j=2;j<=k;j++) //判断2~根号(i)
{
if (i%j==0) //如果能被2~根号(i)整除,则不是素数,直接跳出当前for循环
break;
}
if (j==k+1) //如果i不能被2~根号(i)之间的数整除,j肯定会加到k+1,则可判为素数
printf ("%-5d",i); //将当前素数打印出来
}
}

回答(2):

3,5,7,
11,13,17,19,
23,29,
31,37,
41,43,47,
53,59,
61,67,
71,73,79,
83,89,97,
在3-100内共有24个质数