임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
n은 1이상, 50000000000000 이하인 양의 정수입니다.
제곱근을 구하는 함수 Math
모듈의 sqrt()
함수에 대해서는 알고 있었지만, float로 자료형을 리턴하기 때문에 제곱근이 있는지 없는지 여부를 판단하기 어려웠다. 소수점을 판단하기 위해서
import math;
def solution(n):
answer = 0
a = math.sqrt(n)
if ( a%1 == 0 ):
answer = (a+1) ** 2
else:
answer = -1
return answer
def nextSqure(n):
sqrt = n ** (1/2)
if sqrt % 1 == 0:
return (sqrt + 1) ** 2
return 'no'
모듈을 사용하는 것도 좋지만 1/2
를 제곱하면 제곱근이라는 사실! 중학교 때 이미 배운 사실을 잘 기억하자!