코딩테스트/Programmers Level 1

20일차. 나머지가 1이 되는 수 찾기

자유로운영혼이다냥 2023. 12. 13. 20:20

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/87389

 


 

문제

 

 


 

정답

def solution(n):
    answer = 2
    while (n-1)%answer:
    	answer += 1
    return answer

 

풀이과정

 

나누어서 1이 되는 수는 1 뺸수로 나누면 나누어 떨어진다. 그러므로 최솟값 2부터 그 수가 나올떄까지 1씩 더해가면서 나누어 떨어지면 0(False)가 나오며 답을 제출한다.

다만 답이 없는경우에는 무한반복에 빠지기 쉽고 1을 뺀 숫자가 높은 수치의 소수이면 굉장히 리소스가 많이 들어간다. 그러므로 효율이 좋진 않다.