#include<stdio.h>
void main ()
{
unsigned long int mp,b;
int i,n,j=0,z=0,k,count=1,a;
for(n=2;n<=64;n++)
{
for(i=2;i<=n;i++)
{
if(n%i==0)
{j++;}
}
if(j==1)
{
for(a=2;a<=n;a++)
{b=2.*2;}
mp=b-1;
}
for(k=2;k<=mp;k++)
{
if(mp%k==0)
z++;
}
if(z==1)
{printf("編號%d:梅森素數%llu\n",count,mp);}
count++;
}
}

uj5u.com熱心網友回復:
修改如下,供參考:#include<stdio.h>
void main ()
{
unsigned long int mp,b=2;
int i,n,j=0,z=0,k,count=1,a;
for(n=2;n<32;n++)//for(n=2;n<=64;n++)
{
z=0;
//for(i=2;i<=n;i++)
//{
// if(n%i==0)
// {j++;}
//}
//if(j==1)
//{
// for(a=2;a<=n;a++)
b*=2; //{b=2.*2};
mp=b-1;
//}
for(k=2;k<=mp/2;k++)
{
if(mp%k==0)
{z++;break;}
}
if(z!=1)
{printf("編號%d:梅森素數%llu\n",count++,mp);}
//count++;
}
}
//第1個梅森素數:當p=2時,M_2=(2^2)-1=3,位數為1位,發現于公元前300年左右。
//第2個梅森素數:當p=3時,M_3=(2^3)-1=7,位數為1位,發現于公元前300年左右。
//第3個梅森素數:當p=5時,M_5=(2^5)-1=31,位數為2位,發現于公元前100年左右。
//第4個梅森素數:當p=7時,M_7=(2^7)-1=127,位數為3位,發現于公元前300年左右。
//第5個梅森素數:當p=13時,M_13=(2^13)-1=8191,位數為4位,發現于公元1456年。
//第6個梅森素數:當p=17時,M_17=(2^17)-1=131071,位數為6位,由Cataldi發現于公元1588年。
//第7個梅森素數:當p=19時,M_19=(2^19)-1=524287,位數為6位,由Cataldi發現于公元1588年。
//第8個梅森素數:當p=31時,M_31=(2^31)-1=2147483647,位數為10位,由Euler發現于公元1772年。
//第9個梅森素數:當p=61時,M_61=(2^61)-1,位數為19位,由Pervushin發現于公元1883年。
//第10個梅森素數:當p=89時,M_89=(2^89)-1,位數為27位,由Powers發現于公元1911年。
//第11個梅森素數:當p=107時,M_107=(2^107)-1,位數為33位,由Powers發現于公元1914年。
//第12個梅森素數:當p=127時,M_127=(2^89)-1,位數為39位,由Lucas發現于公元1876年。
//第13個梅森素數:當p=521時,M_521=(2^521)-1,位數為157位,由Robinson發現于公元1952年。
//第14個梅森素數:當p=607時,M_607=(2^607)-1,位數為183位,由Robinson發現于公元1952年。
//第15個梅森素數:當p=1279時,M_1279=(2^1279)-1,位數為386位,由Robinson發現于公元1952年。
//第16個梅森素數:當p=2203時,M_2203=(2^2203)-1,位數為664位,由Robinson發現于公元1952年。
//第17個梅森素數:當p=2281時,M_2281=(2^2281)-1,位數為687位,由Robinson發現于公元1952年。
//第18個梅森素數:當p=3217時,M_3217=(2^3217)-1,位數為969位,由Riesel發現于公元1957年。
//第19個梅森素數:當p=4253時,M_4253=(2^4253)-1,位數為1281位,由Hurwitz發現于公元1961年。
//第20個梅森素數:當p=4423時,M_4423=(2^4423)-1,位數為1332位,由Hurwitz發現于公元1961年。
//第21個梅森素數:當p=9689時,M_9689=(2^9689)-1,位數為2971位,由Gillies發現于公元1963年。
//第22個梅森素數:當p=9941時,M_9941=(2^9941)-1,位數為2993位,由Gillies發現于公元1963年。
//第23個梅森素數:當p=11213時,M_11213=(2^11213)-1,位數為3376位,由Gillies發現于公元1963年。
//.....
uj5u.com熱心網友回復:
最后那個break有什么作用uj5u.com熱心網友回復:
加快進度呀,只要一次是0的說明就不是素數,后面就不要再去算了。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/278992.html
標籤:新手樂園
上一篇:std::chrono::duration 就是帶單位的數量,對duration這個類來說,感覺過份下沉了。
下一篇:opencv3.0 vs2010 打開視頻失敗VideoCapture,vs2015 opencv3.2也有此現象
