題幹很簡單,就是要求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位。麥森數有許多重要應用,它與完全數密切相關。任務...