输出1-1000以内所有素数。
一、for(i=2;i<=1000;i++)这一句的循环分别连续取2-1000的所有值 i
二、for(j=2;j<=i/2;j++)
if(i%j==0)
break;
if(j>i/2)
取一个除数 j ,当它小于等于二分之 i 时,判断i能否被j整除,如果能则不是素数。
(这个部分通过穷举法判断某个数是否是素数)
三、如果某个数是素数,输出该数
希望帮助到你,如果还有什么不理解欢迎继续问
#include
void main()
{
int i,j,k=0; /*定义整型变量*/
for(i=2;i<=1000;i++) /*所求范围在2~1000之间的数*/
{
for(j=2;j<=i/2;j++) /*以这边的 i/2 应该改为 sqrt(i) ,下边的 i/2 一样也改成sqrt(i),然后在开头添加 #include
if(i%j==0) /*如果有 能被1跟自身之外的数 整除的数,则此时 i 不是素数,用以下的 break 语句结束该次for循环*/
break;
if(j>i/2) /*如果 j 的值已经累加根号 i ,说明根号 i 之前的数均不能被 j 整除,此时 i 为素数*/
printf("%d ",i);/*输出素数 i */
}
}
1,i=2,条件i<=1000成立,就执行内部for循环 将2赋给j,但j<=i/2不成立,反回外部for循环,将3赋给i.....知道满足j=2且j<=i/2,在执行后面的if语句
这应该是求的2~1000之间的所有素数吧~