試題 演算法訓練 麥森數 藍橋杯

2021-10-03 10:41:01 字數 1051 閱讀 7845

題目描述:

資源限制

時間限制:1.0s 記憶體限制:256.0mb

問題描述

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

任務:從檔案中輸入p(1000先說一下,這道題卡了我很久,我是用的手動模擬,無奈p值還是很大,總有一些資料超時,後來看到別的部落格思路說,可以一位當5位用,受到了啟發。決定試一下,沒想到成功啦,決定按照自己的想法寫出來還是不錯的。

思路:

因為數值比較大,可以用乙個陣列儲存,一位表示5位,這樣100位即可;

普通的乘法肯定要超時,我們可以每次乘以2的10次方(1024),最終對於不足10次的再每次2的相乘即可;其實和高精度乘法例子是一毛一樣的,區別在於每乙個索引位置儲存五位數。所以說呀,數學思路是基礎,創新其實就是基礎之上修改了一下,痛心的一次經歷。

ac**:

#include

#include

#include

#include

#include

#include

#define max 100000

using

namespace std;

int a[

110]

;int

main()

while

(r) pos=j;

}for

(i=1

;i<=left;i++

)//p不是10的整數倍數,將剩餘的依次遍歷

while

(r) pos=j;

} a[0]

-=1;

//最後的-1操作

for(i=

99;i>=

0;i--

)return0;

}

試題 演算法訓練 反置數 藍橋杯

試題 演算法訓練 反置數 資源限制 時間限制 1.0s 記憶體限制 512.0mb 問題描述 乙個整數的 反置數 指的是把該整數的每一位數字的順序顛倒過來所得到的另乙個整數。如果乙個整數的末尾是以0結尾,那麼在它的反置數當中,這些0就被省略掉了。比如說,1245的反置數是5421,而1200的反置數...

藍橋杯 演算法訓練 回文數

問題描述 若乙個數 首位不為零 從左向右讀與從右向左讀都一樣,我們就將其稱之為回文數。例如 給定乙個10進製數56,將56加65 即把56從右向左讀 得到121是乙個回文數 又如 對於10進製數87 s te p1 step1 step 1 87 78 165 ste p2 step2 step 2...

試題 演算法訓練 Anagrams問題 藍橋杯

試題 演算法訓練 anagrams問題 資源限制 時間限制 1.0s 記憶體限制 512.0mb 問題描述 anagrams指的是具有如下特性的兩個單詞 在這兩個單詞當中,每乙個英文本母 不區分大小寫 所出現的次數都是相同的。例如,unclear 和 nuclear rimon 和 minor 都是...