어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.
| n | result |
|---|---|
| 144 | 1 |
| 976 | 2 |
입출력 예 #1
144는 12의 제곱이므로 제곱수입니다. 따라서 1을 return합니다.
입출력 예 #2
976은 제곱수가 아닙니다. 따라서 2를 return합니다.
import math
def solution(n):
return 1 if float(math.sqrt(n)).is_integer() else 2
파이썬 제곱근 함수 sqrt
math.sqrt(x) 함수는 x의 제곱근을 반환합니다. (x에 루트를 씌운 값을 반환)
1. 이 함수의 반환형은 float 타입입니다.
2.math.sqrt(음수)가 들어오게 된다면 ERROR 가 발생합니다. (math.sqrt(-2) 이런 식은 에러 발생)import math math.sqrt(4) # 2.0
float().is_integer()
소수점 뒤에 모두 0이 있는 부동 소수점을 고려해야 하는 경우 다음을 사용하는 것이 좋습니다.
float 인스턴스가 정수 값으로 유한하면 True를 반환하고 그렇지 않으면 False를 반환한다.if __name__ == '__main__': x = 10.0 isInt = float(x).is_integer() print(isInt) # True더보기: https://www.techiedelight.com/ko/check-variable-integer-python/
def solution(n):
return 1 if (n ** 0.5).is_integer() else 2
def solution(n):
if n**(1/2) == int(n**(1/2)) :
return 1
else :
return 2