藍橋杯練習系統 最小公倍數

2021-08-15 08:13:42 字數 1244 閱讀 1005

問題描述

編寫一函式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。...