icodelab 最多的約數

2022-08-26 08:18:12 字數 870 閱讀 1326

描述

對於乙個正整數a,如果所有小於a的數的約數個數都小於a本身的約數個數,我認為這個數正是我們所要的。

輸入

輸入乙個正整數x。

輸出

輸出乙個不大於x的且滿足上述要求的最大的數a。

輸入樣例 1

1000

輸出樣例 1

840

提示

對於10%的資料,1<=n<=1,000 。對於40%的資料,1<=n<=1,000,000。對於100%的資料,1<=n<=2,000,000,000。

**(為什麼沒寫思路呢?借用老師的**,注釋詳細):

#include #include using namespace std;

typedef long long ll;

int prime[12] = ;

// 2*3*5*7*11*13*17*19*23*29>n,所以只需考慮到29即可

ll n, bestsum, bestnum;

//當前走到num這個數,接著用第k個素數,num的約數個數為sum,

//第k個素數的個數上限為limit

void solve(ll num, ll sum, ll limit, ll k) else if (sum == bestsum && num < bestnum)

for (int i = 1; i <= limit; i++)

}int main()

最多約數問題

問題描述 正整數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 質因子分解 ...