最多約數問題

2021-09-28 20:51:41 字數 1036 閱讀 5442

正整數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)。

樣例輸入

1 36

樣例輸出

9考慮各種可行的方案,並討論各種方案的時間效能

分析主函式為從a到b,分別求出每個數字的約數個數,然後寫乙個函式div(num)求num的約數個數。

(1) div(num)中從1遍歷到num

(2) div(num)中從1遍歷到sqrt(num)

(3) 分解質因數

方法一:

#include

#include

using

namespace std;

intdiv

(int num)

return cnt;

}int

main()

} cout<

return0;

}方法二:分解質因數

#include

using

namespace std;

struct nodeno[10]

;int

div(

int num)

n=num;

for(i=

2;i*i

) no[len]

.xi = i;

no[len++

].zhi =cnt;}if

(n!=1)

for(

int i=

0;ireturn sum;

}int

main()

cout<

return0;

}

最多約數問題

問題描述 正整數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的正整數,其約數的個數記為div x 例如div 10 4。設 a 和 b 是兩個正整數,找出 a 和 b 之間約數個數最多的數 x的約數個數。1 暴力法 依次記錄區間範圍內每乙個數的約束個數,取最大值 int prime int a,int b 2 質因子分解 ...