문제번호 5086번 배수와 약수
입력은 여러 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 두 개의 다른 자연수로 이루어져 있다. 마지막 두 줄에는 0이 2개 입력된다. 각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력해야 한다.
답안 :
1 import sys
2 while True :
3 A, B = map(int, sys.stdin.readline().split())
4 if A == 0 and B == 0 :
5 break
6 elif A % B == 0 :
7 print('multiple')
8 elif B % A == 0 :
9 print('factor')
10 else:
11 print('neither')
comment :
# 표준 입력을 받기 위해서 sys모듈을 가져온다.
# 0 0이 나오기 전까지는 계속 입력을 받아야 하기 때문에 while True: 를 사용하여 무한 반복시키고, 0 0이 나올 때 빠져나오도록 코드를 작성해준다. 이때 6번 이후의 코드들을 4번 코드보다 먼저 작성하게 된다면 0 0이 나올때 0으로 나눌 수 없는 상황이 먼저 발생하여 오류가 생기므로 4번을 먼저 작성해 주어야 한다.
----------------------------------------------------------
문제번호 2501번 약수 구하기
첫째 줄에 N K가 입력된다. 첫째 줄에 N의 약수들 중 K번째로 작은 수를 출력해야 한다. 만일 N의 약수의 개수가 K개보다 적어서 K번째 약수가 존재하지 않을 경우에는 0을 출력해야 한다.
답안 :
1 divisor = []
2 N, K = map(int,input().split())
3 for n in range(1,N+1) :
4 if N % n == 0 :
5 divisor.append(n)
6 try :
7 print(divisor[K-1])
8 except IndexError :
9 print(0)
comment :
# 입력을 받고, N에 대해서 1부터 N까지 나누는 행위를 반복하여 나누어 떨어진다면 나눈 숫자를 약수 리스트에 더해주는 함수를 작성한다.
# try, except문을 사용하여 만약에 인덱스가 없다면 0을 출력하도록 한다.
'프로그래밍 > 파이썬 python' 카테고리의 다른 글
단계별로 풀어보기 9 - 약수, 배수와 소수(3) (0) | 2023.08.14 |
---|---|
단계별로 풀어보기 9 - 약수, 배수와 소수(2) (0) | 2023.08.13 |
단계별로 풀어보기 8 - 일반 수학 1(5) (0) | 2023.08.11 |
단계별로 풀어보기 8 - 일반 수학 1(4) (0) | 2023.08.10 |
단계별로 풀어보기 8 - 일반 수학 1(3) (0) | 2023.08.09 |