这个程序怎么运行的

#include<stdio.h>voidmain(){inti,j,k=0;for(i=2;i<=1000;i++){for(j=2;j<=i/2;j++)if(i%j... #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);
}
}
展开
 我来答
土堆上的石头
2012-10-31 · TA获得超过147个赞
知道小有建树答主
回答量:88
采纳率:0%
帮助的人:118万
展开全部

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

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

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





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

杭州一知智能科技有限公司
2022-03-17 广告
电话机器人主要就是用来模拟人工通话的一组程序,一般由,CRM系统,语义识别,转换文字,话术体系,这是软的部分,再加上底层软交换和通信模块一起,合并起来就是一套完整的电话机器人系统。电话机器人可以代替真人进行电话工作的,像是电话营销、售后回访... 点击进入详情页
本回答由杭州一知智能科技有限公司提供
瓜条文库
2012-10-31 · TA获得超过661个赞
知道小有建树答主
回答量:470
采纳率:75%
帮助的人:111万
展开全部
#include <stdio.h>
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 <math.h>。因为求素数只 要用2~根号i之间的数去除即可。这样可以减少计算机的运算次数,节省时间。*/
if(i%j==0) /*如果有 能被1跟自身之外的数 整除的数,则此时 i 不是素数,用以下的 break 语句结束该次for循环*/
break;
if(j>i/2) /*如果 j 的值已经累加根号 i ,说明根号 i 之前的数均不能被 j 整除,此时 i 为素数*/
printf("%d ",i);/*输出素数 i */
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-10-31
展开全部
1,i=2,条件i<=1000成立,就执行内部for循环 将2赋给j,但j<=i/2不成立,反回外部for循环,将3赋给i.....知道满足j=2且j<=i/2,在执行后面的if语句
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-10-31
展开全部
这应该是求的2~1000之间的所有素数吧~
追问
是啊,我看不懂他怎么求出来的
追答
你知道j的取值范围是怎么来的吧?
然后判断i对j能否整除,也即余数等不等于零,等于零说明是整除的,所以这个数不是素数,所以跳出本次循环,进行下一次,如果一直到j>i/2了都没有跳出循环,说明这个数是素数,就把这个数打印出来~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式