問題描述
編寫一函式lcm,求兩個正整數的最小公倍數。
樣例輸入
乙個滿足題目要求的輸入範例。
例:3 5
樣例輸出
與上面的樣例輸入對應的輸出。
例:15
資料規模和約定
輸入資料中每乙個數的範圍。
例:兩個數都小於65536。
求最小公倍數演算法:
最小公倍數 = 兩整數的乘積 ÷ 最大公約數
求最大公約數演算法:
(1)輾轉相除法
有兩整數a和b:
① a % b得餘數c
② 若c = 0,則b即為兩數的最大公約數
③ 若c ≠ 0,則a = b,b = c,再回去執行①
例如求27和15的最大公約數過程為:
27 ÷ 15 餘1 215 ÷ 12餘312 ÷ 3 餘0因此,3即為最大公約數
1 while(b != 0) //餘數不為0,繼續相除,直到餘數為0
2 3 printf(「the largest common divisor:%d\n」, a);
⑵ 相減法
有兩整數a和b:
① 若 a > b,則a = a - b
② 若 a < b,則b = b - a
③ 若a = b,則a(或b)即為兩數的最大公約數
④ 若a ≠ b,則再回去執行①
例如求27和15的最大公約數過程為:
27-15 = 12( 15 > 12 ) 15 - 12 = 3( 12 > 3 )
12-3 = 9( 9 > 3 ) 9 - 3 = 6( 6 > 3 )
6 - 3 = 3( 3 == 3 )
因此,3即為最大公約數
1 while ( a != b)
2 if (a > b) a = a - b;
3 else b = b - a;
4 printf(「the largest common divisor:%d\n」, a);
#includeusing namespace std;
int yu,a,b;
int s,t;
int c;
int lcm(int a,int b)
while(b != 0) // 餘數不為0,繼續相除,直到餘數為0
m = (a * b) / a;
return m;
}int main(void)
藍橋杯 最大最小公倍數
最大的最小公倍數 time limit 1000 ms memory limit 32768 k total submit 265 71 users total accepted 63 51 users rating special judge no description 從小學我們就學過最小公倍...
藍橋杯 最大最小公倍數
題目大意 給你乙個n,然後從這1 n這n個數中取出任意三個數 可以重複 求三個數的最小公倍數,然後求任意三個數中能取到的最大值 題目思路 看樣例,猜題意,9的答案是9,8,7,然後成功猜出來奇數是直接n n 1 n 2 因為n和n 2都是奇數,公約數是1,n n 2 也是奇數,跟n 1的公約數也是1...
藍橋杯 最大最小公倍數
演算法訓練 最大最小公倍數 時間限制 1.0s 記憶體限制 256.0mb 問題描述 已知乙個正整數n,問從1 n中任選出三個數,他們的最小公倍數最大可以為多少。輸入格式 輸入乙個正整數n。輸出格式 輸出乙個整數,表示你找到的最小公倍數。樣例輸入 9 樣例輸出 504資料規模與約定 1 n 106。...