洛谷P1045麥森數

2021-10-10 13:49:14 字數 813 閱讀 3690

題幹很簡單,就是要求2的p次方-1的位數和後500位。

首先我們肯定不會去把這個數算出來,不然鐵t,那怎麼算位數呢?於是我們想一想數學方法因為2的p次方個位數必不為0,所以2的p次方-1的位數和2的p次方位數相同。又有10的n次方是n+1位數所以轉化一下2的p次方就是10的log10(2)*p+1位數,用cmath裡的log來寫,o(1)就行。

接下來算後500位,本人親測直接寫高精度會t三個點,所以用了快速冪加高精度聽說壓位高精度也行,但是我不會 。

上**:

#include

#include

#include

using

namespace std;

int result[

510]

,base[

510]

,lenr=

504,lenb=

504,c[

1010];

void

xf1()}

for(

int i=

1;i<=lenr;i++

)result[i]

=c[i];}

void

xf2()}

for(

int i=

1;i<=lenb;i++

)base[i]

=c[i];}

void

ksm(

int power)

power>>=1;

xf2();

}}intmain()

}return0;

}

洛谷P1045 麥森數

形如2 12p 1的素數稱為麥森數,這時p p 一定也是個素數。但反過來不一定,即如果p p 是個素數,2 12p 1不一定也是素數。到1998年底,人們已找到了37個麥森數。最大的乙個是p 3021377p 3021 377 它有909526位。麥森數有許多重要應用,它與完全數密切相關。任務 從檔...

洛谷 P1045 麥森數

不會快速冪的我只能瘋狂壓位 dalao們請無視 這是本蒟蒻滴第一篇洛谷題解還請多多包涵鴨!好吧先看看我的辛路歷程 剛看到這題的時候,我第一反應是壓位,於是我從未壓位到 5壓到 10,吸氧後發現後兩者都是60分 o o 於是乎我將2p次方轉化為1024n m,以及220n m來運算,結果只有70分 最...

洛谷 P1045 麥森數 題解

洛谷 p1045 形如 2 p pp 1 的素數稱為麥森數,這時p一定也是個素數。但反過來不一定,即如果p pp是個素數,2 p pp 1不一定也是素數。到1998年底,人們已找到了37個麥森數。最大的乙個是p pp 3021377,它有909526位。麥森數有許多重要應用,它與完全數密切相關。任務...