본문 바로가기
코딩테스트/[python]프로그래머스

[python] 프로그래머스 87389 : 나머지가 1이 되는 수 찾기

by o_oo 2022. 4. 7.

서론

없음.


문제

 

코딩테스트 연습 - 나머지가 1이 되는 수 찾기

자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한사항 입

programmers.co.kr

문제 설명

자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다.

 

제한사항
  • 3 ≤ n ≤ 1,000,000

나의 풀이

def solution(n):
    answer = n-1
    for i in range(2,(n-1)//2):
        if (n-1)%i==0:
            answer= i
            break
    return answer

n의 나머지가 1이되는 숫자를 찾는 문제이기에 n-1의 약수 중에서 1을 제외한 가장 작은 숫자를 찾는 문제라고 생각하였다.

 

약수를 구할 때 전체 숫자를 확인할 필요없이 절반만 확인하면 반대편 숫자도 구할 수 있기 때문에 for loop의 범위를  (n-1)//2로 설정하였다.

 

그리고 작은 값부터 loop을 돌며 나머지를 1로 만드는(풀이에서는 n-1을 0으로 만드는) 값을 구한다. 만약, 값이 없다면 해당 값은 소수이기에 n-1을 그대로 출력시킨다.


+ 피드백과 새로운 풀이 방법은 언제든지 환영입니다!

댓글