Q>
A>
import random
rNum1 = random.randint(100, 1000)
rNum2 = random.randint(100, 1000)
print(f'rNum1 : {rNum1}')
print(f'rNu2 : {rNum2}')
maxNum = 0
for n in range(1, (min(rNum1, rNum2)+1)):
if rNum1 % n == 0 and rNum2 % n ==0:
print(f'공약수 : {n}')
maxNum = n
print(f'최대공약수 : {maxNum}')
if maxNum == 1:
print(f'{rNum1}과 {rNum2}은 서로소 이다')
A>풀이
#1. 난수 발생
#(1) random모듈
import random
#(2) 난수 2개 설정
rNum1 = random.randint(100, 1000)
rNum2 = random.randint(100, 1000)
#(3) 난수 출력되는지 확인
print(f'rNum1 : {rNum1}')
print(f'rNu2 : {rNum2}')
#(8) 최대공약수 변수를 선언
maxNum = 0
#현재 둘중 어느 수가 작을지 모르는 상황임,
#최대공약수는 둘 중 작은 숫자의 약수를 아는 것이 중요함(작은 숫자 보다 큰 값은 서로의 공약수가 아니기 때문)
#(4) min함수 사용 : 숫자 2개 중 작은 숫자 하나를 반환해 줌.
#(5) for+range로 +1을 해줘야 원하는 숫자까지 제대로 반복 됨
for n in range(1, (min(rNum1, rNum2)+1)):
#(6) 최대공약수를 구하는 공식!! 암기하자!
if rNum1 % n == 0 and rNum2 % n ==0:
# (7) 맞는지 출력
print(f'공약수 : {n}')
#(9) 공약수가 발생할 때 마다 할당을 해주면 결과적으로 최대공약수를 구할 수 있음!! 할당!!
maxNum = n
#반복문 종료-----------------------------------------------------------
#(10) 출력
print(f'최대공약수 : {maxNum}')
#+ (11) 서로소 출력, 최대공약수가 1만 나오는 경우를 알아보기 위함
if maxNum == 1:
print(f'{rNum1}과 {rNum2}은 서로소 이다')