| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2757 人关注过本帖
标题:无法理解:求出1到某个数之间的素数
只看楼主 加入收藏
迷茫小一点
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2020-4-7
结帖率:0
收藏
已结贴  问题点数:3 回复次数:16 
无法理解:求出1到某个数之间的素数
图片附件: 游客没有浏览图片的权限,请 登录注册

1.假设val的输入值是100,第一次执行100%2==0,break终止for,返回false,到了2  i<=100为真,由于返回的false,2就会被当作不是素数,不会被输出,
第二次执行,由于val的输入值是100,100%3非0;,if不执行,i+1,第三次执行 100%4==0,break终止,i!=100 返回false,到2   i不就一直=2,i+1就不执行了,我这种流程的理解是否错误
2第二种理解:1 val=100   i=2   i<2 (2是val的值1~100里面的数字如:1 2 3每个数字都会进行一次判断),此时 i<2,不成立,跳出for,执行i==val 返回true(真),是个素数,(此时的 2 的for 是否跟1是一样的)输出一个素数,再回到1  此时在回到1 i 就永远只能i<2,  i<val是否要改成i<=val,如果是这样,那么i<=2,进入if成立 break终止,i的值回到初值i=2;此时的i==val又会返回真.....
搜索更多相关主题的帖子: 个数 执行 返回 素数 false 
2020-04-07 00:37
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
收藏
得分:1 
为什么第8行要i==val呢

2020-04-07 09:01
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
收藏
得分:0 
程序代码:
bool Isprime(int val){
    for(int i=2;i<=n/2+1;i++){
        if(val%i==0)return true;
    }
    return false;
}

这样不但方便,答案也正确

2020-04-07 09:07
迷茫小一点
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2020-4-7
收藏
得分:0 
回复 3楼 return_0
理解不了这个程序,想知道程序执行流程
2020-04-07 09:50
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:1 
不要把isprime里的val和main里的val搞混,楼主提供的图片里的isprime函数没什么问题,只是判断效率不高。
1里也可以改成i<=val,反正到了需要“自己%自己”时肯定是素数了,for肯定会break,然后被“自己==自己”判断输出为true。

能编个毛线衣吗?
2020-04-07 10:00
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:1 
以下是引用wmf2014在2020-4-7 10:00:43的发言:

不要把isprime里的val和main里的val搞混,楼主提供的图片里的isprime函数没什么问题,只是判断效率不高。
1里也可以改成i<=val,反正到了需要“自己%自己”时肯定是素数了,for肯定会break,然后被“自己==自己”判断输出为true。

既然你说了 判断效率不高
为什么后续还提供一个判断效率更低的改动呢 ( 我都不好说改进了 )


https://zh.
2020-04-07 10:13
迷茫小一点
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2020-4-7
收藏
得分:0 
我想知道我的哪种理解是正确的
2020-04-07 10:18
迷茫小一点
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2020-4-7
收藏
得分:0 
回复 6楼 lin5161678
那个,我现在搞懵内部是如何执行的,能否讲解下嘛,谢谢
2020-04-07 10:22
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
以下是引用迷茫小一点在2020-4-7 10:22:31的发言:

那个,我现在搞懵内部是如何执行的,能否讲解下嘛,谢谢

你把isprime函数参数改成 value
再进行理解

[此贴子已经被作者于2020-4-7 10:38编辑过]


https://zh.
2020-04-07 10:33
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
收藏
得分:0 
回复 9楼 lin5161678
???

2020-04-07 10:45
快速回复:无法理解:求出1到某个数之间的素数
数据加载中...
 
   



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

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