파이썬 코딩테스트/해커랭크
HackerRank / Smart Number / Python
S.T.Lee
2021. 12. 26. 22:39
http://hackerrank.com/challenges/smart-number/problem?isFullScreen=true
Smart Number | HackerRank
Find if a number has even number of factors.
www.hackerrank.com
import math
def is_smart_number(num):
val = int(math.sqrt(num))
if num / val == val:
return True
return False
for _ in range(int(input())):
num = int(input())
ans = is_smart_number(num)
if ans:
print("YES")
else:
print("NO")
핵심은 약수가 홀수면 무조건 제곱수인 것이다.
따라서 if num / val == 1:을 if num / val == val : 또는 if val**2 == num 과 같은 형식으로 바꿔주면 된다.