輸入三個數a,b,n,輸出a和b不大於n的公倍數的個數
阿新 • • 發佈:2017-09-14
name () 招商 int col 輸入 pac clas div
題:輸入三個數a,b,n,輸出a和b不大於n的公倍數的所有個數。
這題的思想是先求得a和b的最大公約數,然後用a和b的積除以最大公約數,得到最小公倍數,再持續加上最小公倍數,直到超過n,記下n的個數。如:8,12,100,最大公約數為4,則最小公倍數為24。則公倍數為:24、48、72、96,即總共有4個。
代碼如下:
1 #include<iostream> 2 #include<algorithm> 3 4 using namespace std; 5 6 int main() 7 { 8 int a, b, n; 9 cin >> a >> b >> n;10 int minVal = min(a, b); 11 int maxVal = max(a, b); 12 int tem = 0; //最小公倍數 13 int val = 0; //最大公約數 14 15 if (maxVal%minVal == 0) 16 tem = maxVal; 17 else 18 { 19 while (maxVal%minVal != 0) 20 { 21 val = maxVal%minVal; 22 maxVal = minVal;23 minVal = val; 24 } 25 tem = a*b / minVal; 26 } 27 28 int count = 1; 29 while (tem *count<= n) 30 { 31 count++; 32 } 33 cout <<count-1; 34 return 0; 35 }
//招商信用
輸入三個數a,b,n,輸出a和b不大於n的公倍數的個數