| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1434 人关注过本帖, 1 人收藏
标题:求素数的问题
只看楼主 加入收藏
jtsqrj
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2016-10-13
结帖率:25%
收藏(1)
已结贴  问题点数:5 回复次数:5 
求素数的问题
琢磨了半天也不能理解。。。
求素数的一部分代码:
for(m=2;m<=100;m++){
n=sqrt(m);
for(i=2;i<=n;i++)
   if(m%i==0)
     break;
if(i>n)        #为什么这里i>n就说明了m是素数,上一个for循环不是要求i<=n吗?
   printf("%6d",m);
2016-11-16 18:29
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:2 
i<=n后面还有i++

早知做人那么辛苦!  当初不应该下凡
2016-11-16 18:34
jtsqrj
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2016-10-13
收藏
得分:0 
回复 2楼 炎天
for里面不是有i<=n吗,如果i=7,n就是根号7,那么i=2的时候还可以i++吗?
2016-11-16 18:39
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:0 
可以的,(i=2)<=(n=2) 满足判断条件

for(i=2;i<=n;i++)  不考虑for下面的语句,循环最后i=n+1;
回到你的代码,如果break执行到了i就达不到n+1了

[此贴子已经被作者于2016-11-16 18:59编辑过]


早知做人那么辛苦!  当初不应该下凡
2016-11-16 18:52
哈斯佛道
Rank: 2
等 级:论坛游民
帖 子:23
专家分:81
注 册:2016-8-15
收藏
得分:2 
看最后一次循坏
2016-11-16 19:09
qq152110
Rank: 1
等 级:新手上路
帖 子:2
专家分:2
注 册:2016-11-19
收藏
得分:2 
#include<stdio.h>
int main()
{
    int i,k;
    for(i=2;i<=100;i++)
        {
    for(k=2;k<i;k++)
    {
        if(i%k==0)
        {
            break;
        }
        else if(k=i-1)
        {
            printf(" %d",i);
        }
    }
}
2016-11-19 13:33
快速回复:求素数的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016914 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved