1. 程式人生 > >輸入三個數a,b,n,輸出a和b不大於n的公倍數的個數

輸入三個數a,b,n,輸出a和b不大於n的公倍數的個數

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的公倍數的個數