https://school.programmers.co.kr/learn/courses/30/lessons/87389?language=python3
자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다.
3 ≤ n ≤ 1,000,000
n | result |
---|---|
10 | 3 |
12 | 11 |
입출력 예 #1
10을 3으로 나눈 나머지가 1이고, 3보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 3을 return 해야 합니다.
입출력 예 #2
12를 11로 나눈 나머지가 1이고, 11보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 11을 return 해야 합니다.
n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하는 문제이다.
예를 들어 n = 10이면,
x = 1일 때 나머지 : 0
x = 2일 때 나머지 : 0
x = 3일 때 나머지 : 1
x = 4일 때 나머지 : 2
. . .
따라서 n = 10이면 3을 return 한다.
def solution(n):
for i in range(2, n): # 2부터 n-1까지 반복
if n % i == 1: # 나머지가 1일 때 i 반환
return i
2부터 n-1까지 차례대로 변수 i에 저장한다.
n을 i로 나눈 나머지가 1이면, 그대로 i를 반환한다.
c언어로 한번 풀어봤던 문제라서 쉽게 풀 수 있었다. 파이썬으로 푸니까 c언어에 비해 코드가 엄청 간단해진 것이 신기하다.