임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
제한 사항
n은 1이상, 50000000000000 이하인 양의 정수입니다.
생각 과정
1. 제곱근 계산하는 함수 있지 않나?
2. 제곱근을 계산하면 값은 double이구나! int로 변환했을 때의 값을 다시 제곱해서 n과 같은지를 비교하자
import math
def solution(n):
x, answer = 0,0
x=int(math.sqrt(n))
if x*x==n :
x+=1
return x*x
else:
return -1
def nextSqure(n):
sqrt = n ** (1/2)
# 1/2 제곱,,!!
if sqrt % 1 == 0:
return (sqrt + 1) ** 2
return -1