声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1683|回复: 6

[混合编程] 这个素数判定程序哪里错了

[复制链接]
发表于 2009-3-24 17:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
n=11; M=2^(n)-1; k=0;
for i=2:M^(1/2)
     if rem(M,i)==0, k=1; end
end
if k==0 fprintf('%d 是素数\n',n); else fprintf('%d 不是素数\n',n); end

为什么结果11不是素数 13是素数?(梅森数)

[ 本帖最后由 ChaChing 于 2009-3-24 19:11 编辑 ]
回复
分享到:

使用道具 举报

发表于 2009-3-24 18:30 | 显示全部楼层
你的程序有问题吧 M=2^(n)-1是什么意思??素数有这么判定的吗?
 楼主| 发表于 2009-3-24 18:42 | 显示全部楼层
M=2^(n)-1
只要M是素数n必为素数这就是梅森数
发表于 2009-3-24 19:08 | 显示全部楼层
楼主的程序是判断该数是否为梅森数, 并非判断是否为素数!
2^11-1本就不是梅森数
发表于 2009-3-24 19:08 | 显示全部楼层
很明显有问题
2^11-1=2047
2047/73=89
显然2047不是素数!
发表于 2009-3-24 19:15 | 显示全部楼层

回复 5楼 ljq2008 的帖子

2047/23=89
 楼主| 发表于 2009-3-24 19:22 | 显示全部楼层
:@) 我理解错了
谢谢两位了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-6 09:38 , Processed in 0.064641 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表