題目描述:
資源限制
時間限制: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 都是...