기초수학_최소공배수 (유클리드 호제법)

jaam._.mini·2023년 11월 13일
0

📒Python 기초 수학

목록 보기
16/46

📝이론

공배수

공통된 배수
ex. 3과 5의 공배수 : 15, 30 ...

최소공배수

공배수 중 가장 작은 수
ex. 3과 5의 최소공배수 : 15


💻 파이썬

최소공배수

  • 최소공배수를 구하기 위해선, 먼저 최대공약수를 구해준다.
🏷️ (1) 기본 설정
	
    num1 = int(input('1보다 큰 정수 입력: '))
	num2 = int(input('1보다 큰 정수 입력: '))
	maxNum = 0

🏷️(2) 최대 공약수
🏷️ 작은값=num1로 가정, 작은 값까지 반복문 실행
🏷️ 마지막 i = 가장큰 i = 최대공약수 (maxNum)
	
    for i in range(1, (num1 +1)):
    	if num1 % i == 0 and num2 % i ==0:
        	print('공약수 : {}'.format(i))
        	maxNum = i

	print('최대공약수 : {}'.format(maxNum))

🏷️ (3) 최소 공배수
	
    minNum = (num1 * num2) // maxNum
	print('최소공배수 : {}'.format(minNum))



최소공배수 (응용)

3가지 숫자의 최소공배수를 구하라

🏷️풀이

  • 2개 숫자에 대해 먼저 최대공약수, A.최소공배수 를 구한다
  • A.최소공배수newNum으로 정의
  • newNum과 나머지 1개 숫자에 대해 최대공약수, B.최대공배수를 구한다.

🏷️ 기본 설정 숫자3개
	num1 = int(input('1보다 큰 정수 입력: '))
	num2 = int(input('1보다 큰 정수 입력: '))
	num3 = int(input('1보다 큰 정수 입력: '))
	maxNum = 0

🏷️ 2개(1,2), 최대 공약수
	for i in range(1, (num1 +1)):
 	   if num1 % i == 0 and num2 % i ==0:
   	     maxNum = i

	print('최대공약수 : {}'.format(maxNum))

🏷️ 2개(1,2), 최소 공배수
	minNum = (num1 * num2) // maxNum
	print('{},{}의 최소공배수: {}'.format(num1, num2, minNum))

🏷️ newNum 설정, 2개(1,3)간의 최대공약수
	newNum = minNum
	for i in range(1, (newNum + 1)):
   	 if newNum % i == 0 and num3 % i == 0:
      	  maxNum = i

	print('최대공약수: {}'.format(maxNum))

🏷️ 2개(1,3) 간의 최소 공배수
	minNum = (newNum * num3) // maxNum
	print('{}, {}, {}의 최소공배수: {}'.format(num1, num2, num3, minNum))

참고/출처 : 제로베이스 데이터 스쿨
profile
비전공자의 데이터 공부법

0개의 댓글