- 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다.
def solution(n):
for x in range(2,n+1):
if n%x==1:
return x
#
나머지가 1이 되어야 하니까 답이 될 수 있는 가장 작은 수인 2부터 n 까지의 범위
나머지가 1이 나오는 x 값을 출력
Q. 다른 풀이를 보니 range(2, n) 으로 하는데 왜일까?
A.
x 가 n 을 나눴을 때 1이 나오는 값을 찾아야하는데,
n % n = 0 이기 때문에 x 값의 범위를 n-1 까지의 범위를 주는 것
* if 문에서 나머지가 1인 경우에만 범위를 찾기 때문에
n 이어도 어차피 n-1에서 반복문이 끝나기 때문에 통과는 되지만
예외 처리를 확실하게 하는것이 좋기 때문에 n-1 까지만 설정되도록 하는것이 좋다
'파이썬 코드카타' 카테고리의 다른 글
자연수 뒤집어 배열로 만들기 # [::-1], reverse() (0) | 2024.03.28 |
---|---|
x만큼 간격이 있는 n개의 숫자 # range() (0) | 2024.03.28 |
약수의 합 # range(1,n+1) , append() (1) | 2024.03.27 |
자릿수 더하기 # 문자열 str (0) | 2024.03.27 |
짝수와 홀수 # if 삼항연산자, %2==0 과 %2 (0) | 2024.03.27 |