본문 바로가기
프로그래밍/파이썬기초

배수와 공배수 구하기_파이썬 기초

by 조크리 2021. 3. 26.
반응형

파이썬 찐초보 연습!!

 

오늘의 목표

 

1. 어떤 수를 입력받아 배수 구하기

2. 두 수의 배수 찾기

2. 두 수의 최소 공배수 찾기 

 

'최소공배수 最小公倍數'는 LCM이라고도 하는데 Lowest Common Multiple의 약자로 

오늘의 최종 목표라고 할 수 있다! 

 

 

1. 어떤 수의 배수를 구하는 프로그램 만들기

(무제한으로 구할 수 없으니 50개만 구해보자!)

 

1) 첫번째 수를 입력받는다.

2) 배수들을 저장할 곳을 준비한다. 

3) 1부터 50까지 반복한다. : 입력받은 수에 i를 곱한 것을 배수에 둔다.

4) 배수를 출력한다. 

 

python
닫기
number = int(input("어떤 수 : ")) data = [] for i in range(1, 50+1): ​​data.append(i * number) print("%d의 배수는"%(number), data)

 

2. 숫자를 입력받고, 배수의 개수도 입력받아 입력받은 수의 배수를 출력해보자. 

 

1) 첫번째 수를 입력받는다.

2) 두번째 수를 입력받는다.(개수를 입력받음)

3) 1부터 개수까지 반복한다.

4) 배수를 출력한다. 

 

python
닫기
number = int(input("어떤 수 : ")) count = int(input("개수: ")) data = [] for i in range(1, count+1): ​​data.append(i * number) print("%d의 배수는"%(number), data)

 

 

3. 두 수를 입력받고 두 수의 배수를 구하기

 

입력값은 num1, num2, count

출력값은 배수=data1, data2

 

수식

data1 = num1 * i

data2  = num2 * i 

 

python
닫기
number1 = int(input("첫번째 수: ")) number2 = int(input("두번째 수 : ")) count = int(input("개수: ")) data1 = [] data2 = [] for i in range(1, count+1): ​​data1.append(i*number1) ​​data2.append(i*number2) print("%d의 배수는" %(number1), data1) print("%d의 배수는"%(number2), data2)

 

4. 두 수를 입력받고 두 수의 배수를 구하기(3번의 업그레이드 버전)

 

num1은 num2개, num2는 num1개의 배수를 구해보자!

 

python
닫기
number1 = int(input("첫번째 수: ")) number2 = int(input("두번째 수 : ")) data1 = [] data2 = [] for i in range(1, number2+1): ​​data1.append(i*number1) for i in range(1, number1+1): ​​data2.append(i*number2) print("%d의 배수는" %(number1), data1) print("%d의 배수는"%(number2), data2)

 

5. 두 수의 최소공배수를 구해보자! 

 

입력값 num1, num2

출력값 최소공배수

 

첫번째 입력받은 수 * i 

i는 두번째 입력받은 수이다.

이 값들은 data1이라는 리스트에 저장해둔다.

 

두번째 입력받은 수 * i

i는 첫번째 입력받은 수이다. 

이 값들은 data2라는 리스트에 저장해둔다. 

 

이제 data1 리스트에 있는 값들이 data2에도 있다면 맨 처음 찾은 그 값이 최소공배수가 된다. 

 

코드를 살펴보자! 

python
닫기
number1 = int(input("첫번째 수: ")) number2 = int(input("두번째 수 : ")) data1 = [] data2 = [] for i in range(1, number2+1): ​​data1.append(i*number1) for i in range(1, number1+1): ​​data2.append(i*number2) for i in data1: ​​if i in data2: ​​​​lcm = i ​​​​break print("최소공배수", lcm)

break는 반복문을 종료하는 개념으로 원하는 데이터를 찾은 경우 for반복문을 벗어나게 만든다!

 

while문을 사용해 구해보자!

python
닫기
number1 = int(input("첫번째 수: ")) number2 = int(input("두번째 수 : ")) if number1 > number2: ​​greater = number1 else: ​​greater = number2 while(1): ​​if (greater % number1 == 0) & (greater % number2 == 0): ​​​​lcm = greater ​​​​break ​​greater += 1 print("최소공배수 :", lcm)

 

 

6. 공배수 찾기 

 

공배수 찾기는 최소공배수찾기와 비슷하게 코드를 써주면 되는데

cm이라는 리스트를 만들어주고

data1리스트와 data2리스트에서 같은 값을 찾았다면 cm이라는 리스트에 추가해주면된다!

그리고 cm이라는 리스트의 0번째 값이 최소공배수가 된다~!

python
닫기
number1 = int(input("첫번째 수: ")) number2 = int(input("두번째 수 : ")) data1 = [] data2 = [] cm = [] for i in range(1, number2+1): ​​data1.append(i*number1) for i in range(1, number1+1): ​​data2.append(i*number2) for i in data1: ​​if i in data2: ​​​​cm.append(i) print("공배수", cm) print("최소공배수", cm[0])

 

마지막 미션~!

 

A, B, C의 최소공배수를 구하라! 

 

① A와 B의 최소공배수를 구한다.

② ①에서 구한 A와 B의 최소공배수와 C의 최소공배수를 구한다.

 

python
닫기
number1 = int(input("첫번째 수 : ")) number2 = int(input("두번째 수 : ")) number3 = int(input("세번째 수 : ")) if number1 > number2: ​​greater = number1 else: ​​greater = number2 while(1): ​​if (greater % number1 == 0) & (greater % number2 == 0): ​​​​lcm = greater ​​​​break ​​greater += 1 if number3 > lcm: ​​greater = number3 else: ​​greater = lcm while(1): ​​if (greater % number3 == 0) & (greater % lcm == 0): ​​​​lcm = greater ​​​​break ​​greater += 1 print("최소공배수 :", lcm)

 

 

 

반응형