LA2955 Vivian難題 梅森素數

2022-05-01 22:27:16 字數 619 閱讀 8382

輸入 $k$(1 \leq k \leq 100)個正整數 $p_1, p_2, ..., p_k$(1 < p_i < 2),找出 $k$ 個非負整數 $e_i$ 使得 $n = \prod _^k ^$ 為 $2^x$,$x$ 為正整數。注意,由於 $x>0$,$e_i$ 不能全為0.如果無解輸出no,否則輸出最大的 $x$。

梅森數:$2^p-1$,指數 $p$ 是素數。常記為 $mp$.

如果梅森數是素數,就稱為梅森素數。

若 $2^n-1$ 是素數,則指數 $n$ 也是素數(假設 $n$ 是合數,$2^n-1$ 一定能被分解)

若 $n$ 是素數,$2^n-1$ 卻未必是素數。

有乙個重要的性質:「乙個數能夠寫成 $n$ 個不重複的梅森素數的乘積」 等價於 "這個數的約數和是2的冪"。

例如,$2^3-1=7$,7的約數為1和7,$1+7 = 2^3$

必須是不重複的,$3 \times 3 = 9$,但9的約數1、3、6、9,和不是2的冪。

在題給的範圍內,梅森素數只有8個。

感覺爆搜就可以了,不會寫

1. 2.