[기초수학] GCD, LCM

강미진·2023년 4월 22일
0
# 두 개의수를 입력하면 공약수와 최대공약수를 출력하는 코드 작성
num1 = int(input('1보다 큰 정수 입력 : '))
num2 = int(input('1보다 큰 정수 입력 : '))
for i in range(1, num1 +1) :
    if num1 % i == 0 and num2 % i == 0 :
        print('공약수 : {}'.format(i))
        maxNum = i
print(f'최대공약수 : {maxNum}')
1보다 큰 정수 입력 : 10
1보다 큰 정수 입력 : 8
공약수 : 1
공약수 : 2
최대공약수 : 2
#유클리드 호제법
numa = int(input('1보다 큰 정수 입력 : '))
numb = int(input('1보다 큰 정수 입력 : '))
temp1 = numa ; temp2 = numb
while temp2 > 0 :
    temp = temp2
    temp2 = temp1 % temp2
    temp1 = temp
print('{}, {}의 최대공약수 : {}'.format(num1, num2, temp1))
for n in range(1,(temp1+1)) :
    if temp1 % n == 0 :
        print('{},{}의 공약수 : {}'.format(num1,  num2, n))
1보다 큰 정수 입력 : 10
1보다 큰 정수 입력 : 8
10, 8의 최대공약수 : 2
10,8의 공약수 : 1
10,8의 공약수 : 2
# 최소 공배수 구하기
# 최소공배수 = 두 숫자의 곱을 최대공약수로 나눈 몫
num_1 = int(input('1보다 큰 정수 입력 :'))
num_2 = int(input('1보다 큰 정수 입력 :'))
max_num = 0
for i in range(1, (num1 + 1)) :
    if num_1 % i == 0 and num_2 % i == 0 :
        print('공약수 : {}'.format(i))
        max_num = i
print('최대 공약수 : {}'.format(max_num))
min_num = (num_1 * num_2) // max_num
print('최소 공배수 : {}'.format(min_num))
1보다 큰 정수 입력 :10
1보다 큰 정수 입력 :8
공약수 : 1
공약수 : 2
최대 공약수 : 2
최소 공배수 : 40
# 3개의 수를 입력하면 최소공배수를 출력하는 코드
numA = int(input('1보다 큰 정수 입력 :'))
numB = int(input('1보다 큰 정수 입력 :'))
numC = int(input('1보다 큰 정수 입력 :'))
gcd = 0
for i in range(1, (numA + 1)) :
    if numA % i == 0 and numB % i == 0 :
        gcd = i
lcm = (numA * numB) // gcd
new_num = lcm
for i in range(1, (new_num + 1)) :
    if new_num % i == 0 and numC % i == 0 :
        lcm = i
lcm = (new_num * numC) // gcd
print('{},{},{}의 최소공배수 : {}'.format(numA, numB, numC, lcm))
1보다 큰 정수 입력 :10
1보다 큰 정수 입력 :8
1보다 큰 정수 입력 :12
10,8,12의 최소공배수 : 240
profile
g'day mate

0개의 댓글