數是由合數和質數構成,合數又可以分解成質數和合數,最後遞迴下去就會變成質數的乘積。
36的因子有1,2,3,4,6,9,12,18,36共9個,
36=4 * 9(或者6 * 6)=2 * 2 * 3 * 3=2^ 2 * 3 ^ 2
根據唯一分解定理
(1+2)*(1+2)=9
(1+a1) * (1+a2) * …… * (1+an)
a1,a2,……,an這些分別是素數因子的冪次數
因為當我的a1=3時那我n的因子肯定會有,p10,p11,p12,p13,這四個數
然後再和p2的個數搭配起來就是兩個數的因子數相乘了,p1^x可以與 p2^y隨意搭配,進行乘法
這個其實也就是和上面這個一樣的道理,不過我們求的是和,所以我們要把所有的因子和求出來
公式:(q1 ^ 0 + q1 ^ 1 + q1 ^ 2…q1 ^ a1)* (q2 ^ 0 + q2 ^ 1 + q2 ^ 2…q2 ^ a2)* … *(qn ^ 0 + qn ^ n + qn ^ 2…qn ^ an)
參考:
唯一分解定理
任意乙個大於1的正整數都能表示成若干個質數的乘積,且表示的方法是唯一的。換句話說,乙個數能被唯一地分解成質因數的乘積。因此這個定理又叫做唯一分解定理。c include include include using namespace std int main int num 32 int local...
唯一分解定理
唯一分解定律 又稱為正整數的唯一分解定理,即 每個大於1的自然數均可寫為質數的積,而且這些素因子按大小排列之後,寫法僅有一種方式。當題目有大數相除,求餘數時,精度要求高時.就要運用唯一分解定律 以下唯一分解定律證明 為了真正地證明,分解質因數的方法是唯一的,我們將再次用到反證法。假設存在某些數,它們...
唯一分解定理
problem description 假設x是乙個正整數,它的值不超過65535 即1 x 65535 請編寫乙個程式,將x分解為若干個素數的乘積。input 輸入的第一行含乙個正整數k 1 k 10 表示測試例的個數,後面緊接著k行,每行對應乙個測試例,包含乙個正整數x。output 每個測試例...