Python_나머지가 1이 되는 수 찾기

김보람·2022년 5월 11일
0

Python

목록 보기
31/39

<문제>

문제 설명

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

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


<풀이>

def solution(n):
    answer = []
    for x in range(2,n+1):
        if n%x == 1:
            answer.append(x)
            return answer[0]

<다른 풀이>

방법 1.
def solution(n):
    answer = 0

    for divisior in range(2, (n-1//2) +1) : #2부터~반값까지 
        if (n-1) % divisior == 0: #약수가 있다면
            answer = divisior 
            break #탈출
        else: 
            answer = n-1 #약수가 없다면 본인
    return answer
방법 2.
import math
def solution(n):
    x = n - 1
    if x % 2 == 0:
        return 2
    for i in range(2, int(math.sqrt(x)) + 1):
        if x % i == 0:
            return i
    return x

<코드 리뷰>

sqrt의 경우 제곱근을 의미하는 것으로, math 함수를 import 하지 않고 대신, (x**0.5)로 써도 된다.

profile
starry_developer

0개의 댓글