这个素数判定程序哪里错了
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 编辑 ] 你的程序有问题吧 M=2^(n)-1是什么意思??素数有这么判定的吗? M=2^(n)-1
只要M是素数n必为素数这就是梅森数 楼主的程序是判断该数是否为梅森数, 并非判断是否为素数!
2^11-1本就不是梅森数 很明显有问题
2^11-1=2047
2047/73=89
显然2047不是素数!
回复 5楼 ljq2008 的帖子
2047/23=89 :@) 我理解错了谢谢两位了
页:
[1]