算數基本定理求約數個數

2021-08-28 08:51:10 字數 742 閱讀 7400

題目:最多約數問題

正整數x 的約數是能整除x的正整數,其約數的個數記為div(x),例如div(10)=4。

設a 和b 是兩個正整數,找出a 和b 之間約數個數最多的數x 的約數個數。

樣例輸入:   1 36

樣例輸出:   9

算數基本定理:又稱為正整數的唯一分解定理,即:每個大於1的自然數要麼它本身就是質數或者要麼它可寫為質數的積,而且這些質因子按大小排列之後,寫法僅有一種方式。例如:那麼如何求出每個數的約數個數?算數基本定理可以將每個數分解為 質數^指數 乘積的形式,我們又知道質數的隨機匹配可以生成合數,那麼匹配數的總和就是這個要求的數的約數個數。

打個比方:6936 = 2^3 * 3 * 17^2,一共有三個2,乙個3和兩個17可以組合,三個2可以拿出的組合數為四種(0,1,2,3),同理3兩種(0,1),17三種(0,1,2),組合到一塊即 4*2*3 = 24,即6936共有24個約數。

#include #include #include #include #includeusing namespace std;

int div(int n)

if(tmp) ans *= (tmp+1);

} if(n > 1) ans *= 2;

return ans;

}int main()

return 0;

}

求約數的個數(約數個數定理)

最近做了乙個要求求乙個數約數個數的題,後來發現居然有這方面的定理,也就是約數個數定理,所以趕緊記下來。大概是 對於乙個大於1正整數n可以分解質因數 n p1 a1 p2 a2 p3 a3 pk ak,則n的正約數的個數就是 a1 1 a2 1 a3 1 ak 1 其中p1,p2,p3,pk都是n的質...

約數個數定理

編輯 對於乙個大於1正整數n可以 分解質因數 則n的 正約數的個數就是 其中a 1 a2 a 3 ak是p 1 p2 p 3,p k的指數。編輯首先同上,n可以 分解質因數 n p1 a1 p2 a2 p3 a3 pk ak,由約數定義可知p1 a1的約數有 p1 0,p1 1,p1 2.p1 a1...

約數個數定理and約數和定理

定理 對於乙個大於1正整數n可以 分解質因數 則n的正約數 的個數就是 證明 省略 舉個栗子 例題 正整數378000共有多少個 正約數?解 將378000 分解質因數378000 2 4 3 3 5 3 7 1 由約數個數定理可知378000共有正約數 4 1 3 1 3 1 1 1 160個。c...