最多約數問題

2021-09-10 06:35:09 字數 631 閱讀 5644

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

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

1、暴力法(依次記錄區間範圍內每乙個數的約束個數,取最大值)

int prime(int a, int b)

}}

2、質因子分解

乙個合數可以分解為多個素數相乘,而每個素數之間相互匹配相乘的結果定為合數的因子,而匹配的種類數一定

為每個素數的數量即為其指數的乘積,但是每個素數可以與其自身匹配,當合數表示為:n=a1^n1*a2^n2...,

所以約數數量為count=(n1+1)*(n2+1)....。

int prime(int n)

}// 根據每個質因數出現的次數計算n的約束個數

for (int j=2; j<=k/2; j++)

}return ncount; }

int get(int a, int b)

}}

最多約數問題

問題描述 正整數x的約數是能整除x的正整數。正整數x的約數個數記為div x 例如,10有4個約數 1 2 5 10。設a和b是兩個正整數,試計算a和b之間約數個數最多的數x。演算法設計 對於給定的2個正整數a b,程式設計計算a 和 b 之間約數個數最多的數。資料輸入 輸入資料由檔名為input....

最多約數問題

問題描述 正整數x的約數是能整除x的正整數。設a和b是兩個正整數,a b,找出a和b之間約數個數最多的數x。輸入輸出樣例 input 1 36 output 9還是列舉求a,b之間每個數的約數個數,算約數個數採用分解質因數的方法。質數p1 p2 p3 pn,正整數a分解質因數的結果是 a p1 m1...

最多約數問題

正整數x的約數是能整除x的正整數。正整數x的約數個數記為div x 例如,1,2,5,10都是正整數10的約數,且div 10 4。對於給定的2個正整數a b,程式設計計算a與b之間約數個數最多的數。輸入輸入的第1行有兩個正整數a和b。輸出若找到的a和b之間約數個數最多的數是x,則輸出div x 樣...