洛谷 P1045 麥森數(高精,位數公式)

2021-10-03 08:04:36 字數 738 閱讀 6075

求2p-1的最後500位數 (p<3100000)

以前碰到高精都是python**好

想寫一下c的高精,第一次寫,踩了好多坑

這個題是高精乘法+快速冪

第一小問是求位數,可以用乙個求位數的公式

k=log10(n)+1

2p-1和2p的位數是一樣的,所以直接求2p的位數即可

log10(2p)=p*log10(2)

**:

#include

#define ll long long

using

namespace std;

ll a[

1010

],s[

1010

],t[

1010];

void

result1()

}for

(int i=

1;i<=

500;i++)}

void

result2()

}for

(int i=

1;i<=

500;i++)}

intmain()

result2()

; p/=2

;}s[1]

--;cout

int i=

1;i<=

500;i++

)else

}return0;

}

洛谷P1045 麥森數

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

洛谷P1045麥森數

題幹很簡單,就是要求2的p次方 1的位數和後500位。首先我們肯定不會去把這個數算出來,不然鐵t,那怎麼算位數呢?於是我們想一想數學方法因為2的p次方個位數必不為0,所以2的p次方 1的位數和2的p次方位數相同。又有10的n次方是n 1位數所以轉化一下2的p次方就是10的log10 2 p 1位數,...

洛谷 P1045 麥森數

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