본문 바로가기

알고리즘/test

Python) 프로그래머스 - 정수 제곱근 판별

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

실행코드

def solution(n):
    if n <= 0:
        return -1  
    elif n == 1:
        return 4 
    else:
        for x in range(2, int(n ** 0.5) + 1):
            y = n
            while y % x == 0:
                y //= x
            if y == 1:
                return (x + 1)**2
        return -1

풀이

먼저 n이 양의 정수인지 확인하고, 양의 정수가 아니면 -1을 반환합니다.

다음 n이 특별한 경우를 처리합니다. 항상 1의 거듭제곱이고 1 + 1 = 2 의 제곱인 4를 반환합니다.

그 다음 모든 정수를 확인합니다.