|
编程中国
|
业界新闻
|
技术文章
|
视频教程
|
下载频道
|
程序源码
|
个人空间
|
编程论坛
|
登录
注册
平板模式
论坛地图
帮助
编程论坛
→
开发语言
→
VB6论坛
→ 求助 素数的简单问题
我的收件箱(0)
全能ASP/PHP/ASP.NET主机,支持月付
专业
MSSQL
数据库空间,支持月付
专业
MySQL
数据库空间,支持月付
学习型 ASP/PHP/ASP.NET 主机
30
元/年
高端软件开发 = 年薪十万不是梦
赛孚耐:软件保护加密专家
身份认证令牌USB KEY
共有
248
人关注过本帖
标题:求助 素数的简单问题
waiting……
收藏
订阅
推荐
打印
werty_sy
等级:新手上路
帖子:5
积分:162
注册:2008-6-22
楼主
求助 素数的简单问题
判断一个数是否为素数的过程中
For b = 2 To a - 1
Next b
If a Mod b = 0 Then
Text2.Text = "这不是素数"
Else
Text2.Text = "这是素数"
为什么b=2 to a -1得到错误的结果,要用b = sqr(a)才能使程序正确?
谢谢
搜索更多相关主题的帖子:
素数
简单问题
2008-9-5 09:54
multiple1902
等级:版主
威望:
40
帖子:4479
积分:45682
注册:2007-2-9
第
2
楼
你for之后直接就next啊?结果不错就怪了。你用sqr结果能正确就怪了。因为照你这意思,居然是一个O(1)的判断素数算法。史上还没有这么强大的算法。费尔马小定理也是要多试几个数的。
再说了,sqr是平方吧?sqrt是平方根吧?
“高考”这个词在耳边不断萦绕,心中的激动不言而喻。写下一句话,一起努力。Let's struggle together.
2008-9-5 10:46
punisher106
等级:新手上路
帖子:22
积分:330
注册:2008-8-13
第
3
楼
素数也就是除了一和他本身之外,没有别的除数了的数。比如13 。判断方法一般是从二循环到该数的一半,先不管他是否能整除二。到底为什么要循到一半就不用说了吧,3×5和5×3都能证明他不是素数。
2008-9-5 11:08
werty_sy
等级:新手上路
帖子:5
积分:162
注册:2008-6-22
第
4
楼
for之后直接next可以的啊,然后用sqr(x)能算出正确结果的
punisher讲的明白了,原来要循环一半就可以了
谢谢你们
2008-9-5 12:34
punisher106
等级:新手上路
帖子:22
积分:330
注册:2008-8-13
第
5
楼
举个例子,比如判断24是否是素数。那我们开始循环。假设循环因子是i ,那开始的时候,i=2 ,满足条件。2×12=24.当i=3,满足条件。3×8=24 。再向下继续循环,可以得到 2*12,3*8,4*6,6*4,8*3,12*2这些的组合,从中不难发现原理了吧,他们都是对称的,有2×12,必然会有12×2。所以 ,我们只要是循环到了一半,就完全可以推断出另外的一半的组合。不知道这么说,是否把问题说明白了。其实我也是新手,相互帮助。
2008-9-5 18:58
multiple1902
等级:版主
威望:
40
帖子:4479
积分:45682
注册:2007-2-9
第
6
楼
嗯,楼上说得好。
也没必要循环到一半,循环到算数平方根(向下取整)即可。数学上能证明的。
“高考”这个词在耳边不断萦绕,心中的激动不言而喻。写下一句话,一起努力。Let's struggle together.
2008-9-5 21:45
werty_sy
等级:新手上路
帖子:5
积分:162
注册:2008-6-22
第
7
楼
谢谢你们,现在彻底懂了
2008-9-6 09:11
punisher106
等级:新手上路
帖子:22
积分:330
注册:2008-8-13
第
8
楼
对哦,不不好意思,我弄措了,到平方根就可以了。
2008-9-7 15:45
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
Archiver
|
WAP
|
TOP
编程中国
版权所有,并保留所有权利。鲁ICP备08000592号
Powered by
Discuz
, Processed in 0.057628 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved