途家2019校招筆試 1 求最大公約數和最小公倍數

2021-08-27 21:28:11 字數 943 閱讀 3670

題目:求最大公約數和最小公倍數

輸入正整數 m n

求最大公約數和最小公倍數

輸入

15

9

輸出

3

45

思路:

輾轉相除法, 又名歐幾里德演算法(euclidean algorithm),是求最大公約數的一種方法。它的具體做法是:

用較小數除較大數,

再用出現的餘數(第一餘數)去除除數,

再用出現的餘數(第二餘數)去除第一餘數,如此反覆,直到最後餘數是0為止。

如果是求兩個數的最大公約數,那麼最後的除數就是這兩個數的最大公約數

對於程式裡交換的部分一定要畫圖。

yushu=chushu % beichushu

4 100 22

2 22 4

0 4 2

可以看到被除數賦給除數,餘數賦給被除數。一直到餘數=0結束。

一旦餘數=0 就輸出 被除數(最大公約數)

最小公倍數,即是 兩數相乘除以最大公約數的值

**:

def

getgys

(num1,num2):

if num1while r!=0:

num1=num2

num2=ynum

ynum=num1%num2

return int(num2)

defgetgbs

(num1,num2,h):

print(int(num1*num2/h))

m=int(input())

n=int(input())

print(getgys(m,n))

getgbs(m,n,getgys(m,n))

求最大公約數和最小公倍 PHP

用程式求最大公約數和最小公倍數最容易想到的方法如下 求最大公約數 function max divisor a,b return 1 求最小公倍數 function min multiple a,b return a b 輾轉相除法求最大公約數 function max divisor2 a,b e...

python for練習最大公約數 最小公倍數

需求 輸入兩個數值 求兩個數的最大公約數和最小公倍數.最小公倍數 num1 num2 最大公約數 思路 1.最大公約數小於等於輸入兩個數中最小的數 2.利用迴圈,最後一次迴圈可以被兩個數同時整除的數為最大公約數。1.輸入兩個數值 num1 int input 第乙個數 num2 int input ...

CodeVS1012 最大公約數和最小公倍數問題

題目 題目描述 description 輸入二個正整數x0,y0 2 x0 100000,2 y0 1000000 求出滿足下列條件的p,q的個數 條件 1.p,q是正整數 2.要求p,q以x0為最大公約數,以y0為最小公倍數.試求 滿足條件的所有可能的兩個正整數的個數.輸入描述 input des...