这个程序怎么运行的

#include <stdio.h> void main(){ int i,j,k=0; for(i=2;i<=1000;i++){ for(j=2;j<=i/2;j++) if(i%j==0) break; if(j>i/2) printf("%d ",i);} }
2026年09月22日 10:13
有4个网友回答
网友(1):

输出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整除,如果能则不是素数。

(这个部分通过穷举法判断某个数是否是素数)

三、如果某个数是素数,输出该数





希望帮助到你,如果还有什么不理解欢迎继续问

网友(2):

#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 。因为求素数只 要用2~根号i之间的数去除即可。这样可以减少计算机的运算次数,节省时间。*/
if(i%j==0) /*如果有 能被1跟自身之外的数 整除的数,则此时 i 不是素数,用以下的 break 语句结束该次for循环*/
break;
if(j>i/2) /*如果 j 的值已经累加根号 i ,说明根号 i 之前的数均不能被 j 整除,此时 i 为素数*/
printf("%d ",i);/*输出素数 i */
}
}

网友(3):

1,i=2,条件i<=1000成立,就执行内部for循环 将2赋给j,但j<=i/2不成立,反回外部for循环,将3赋给i.....知道满足j=2且j<=i/2,在执行后面的if语句

网友(4):

这应该是求的2~1000之间的所有素数吧~