python梅森素数函数 梅森素数分布规律

python3算梅森素数的最佳代码是什么?import datetime
from math import sqrt
def prime_number(m):
L = [2, 3]
for n in range(2, m):
for i in range(2, int(sqrt(n))+1):
if n % i == 0:
break
if int(sqrt(n)) == i:
L.append(n)
return L
def perfect_number(x):
List = []
for n in prime_number(x):
if (pow(2, n)-1)*pow(2, n-1)x:
break
if pow(2, n)-1 in prime_number(x):
List.append((pow(2, n)-1)*pow(2, n-1))
return List
start = datetime.datetime.now()
print(perfect_number(10000))
end = datetime.datetime.now()
print(end - start)
[6, 28, 496, 8128]
获取10000以内python梅森素数函数的完全数用时0.194480秒
学电脑到~新华电脑学院
问题:如果一个素数可以写成2^p-1的形式,其中p是一个正整数,那么该素数就称为梅森素数 。输入#includestdio.h
#includemath.h
bool isPrime(int n);
void main()
{
int p = 0;
int count = 0;
for(p=1; p32; p++)
if(isPrime((int)pow(2,p)-1))
{
printf("%d=2^%d-1\n",(int)pow(2,p)-1,p);
count++;
}
printf("一共有%d个 。\n",count);
}
bool isPrime(int n)
{
int i;
double a;
if(n2)
return false;
【python梅森素数函数 梅森素数分布规律】 a = sqrt(n);
for(i=2; i=a; i++)
if(n%i == 0)
return false;
return true;
}
用python如何最快的算出梅森质数?python梅森素数函数你是要真python梅森素数函数的算python梅森素数函数,还是为了验证
梅森素数,是二的p次方减一 , 其中p也是素数
那把你的程序就可以写一个生成素数的算法,代入公式里p,他在写一个检验素数的算法,然后逐个验证P,就知道有哪些梅森素数
什么是梅森素数?为什么要探索梅森素数??梅森素数是由梅森数而来 。所谓梅森数 , 是指形如2?-1的一类数 , 其中指数n是素数,常记为Mn,如果梅森数是素数 , 就称为梅森素数 。用因式分解法可以证明,若2?-1是素数,则指数n也是素数 。
“梅森素数”(Mersenne prime)是指形如2^P-1的素数 , 如2^2-1=3、2^3-1=7、2^5-1=31等 。早在2300年前,古希腊数学家欧几里得用反证法证明素数有无穷多个;他认为,其中一些素数可写成2^P-1的形式 。
由于2^P-1型素数具有独特的性质和无穷的魅力,千百年来一直吸引着众多的数学家和无数的业余数学爱好者对它进行探究 。17 世纪法国数学家马林·梅森是他们中最杰出的探究者 。
由于梅森学识渊博、才华横溢、为人热情以及最早系统而深入地研究2^P-1型素数,为了纪念他,数学界将这种特殊形式的素数命名为“梅森素数” 。迄今为止,人类仅发现51个梅森素数 。这种素数珍奇而迷人,因而被人们称为“数学宝山上的钻石” 。梅森素数历来是数论研究的一项重要内容,也是当今科学探索的热点和难点之一 。
2^P-1貌似简单,但探究难度却很大;当指数P值较大时,不仅需要高深的理论和纯熟的技巧 , 而且还需要进行艰巨的计算 。1772年,有“数学英雄”美名的瑞士数学大师莱昂哈德·欧拉在双目失明的情况下,靠心算证明了2^31-1(即2147483647)是第8个梅森素数 。这个具有10位的素数,堪称当时世界上已知的最大素数 。
在“手算笔录”的年代,人们历尽艰辛,仅找到12个梅森素数 。而计算机的产生加速了梅森素数探究进程 。1952年,美国数学家拉斐尔·鲁滨逊等人使用SWAC型计算机在短短的几个月内,就找到了5个梅森素数:2^521-1、2^607-1、2^1279-1、2^2203-1和2^2281-1 。
探索梅森素数的原因

推荐阅读