問題描述:正整數x的約數是能整除x的正整數。正整數x的約數個數記為div(x)。例如,10有4個約數:1、2、5、10。設a和b是兩個正整數,試計算a和b之間約數個數最多的數x。
演算法設計:
對於給定的2個正整數a≤b,程式設計計算a 和 b 之間約數個數最多的數。
資料輸入:
輸入資料由檔名為input.txt的文字檔案提供。檔案的第1 行有2 個正整數 a和 b。
結果輸出:
若找到的a和b之間約數個數最多的數是x,則將div(x)輸出到檔案output.txt。
問題分析:任何乙個數都能分解成幾個素數乘積的形式,例如6的約數有1,2,3,6,且6分解成素數相乘6=2*3,在比如36的約數有1,2,3,4,6,9,12,18,36,且36分解成素數相乘36=2*2*3*3=2^2*3^2,通過規律我們可以發現乙個數約數的個數等於它分解成素數相乘後各素數指數加一的乘積,像36約數個數就直接可以以(2+1)*(2+1)=9個來計算。
#include#include
int prime(int n)
printf("%d\n",maxvalue);
return 0;
}
最多約數問題
問題描述 正整數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 質因子分解 ...
最多約數問題
正整數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 樣...