숫자 n이 있다고 가정합니다. 숫자에 1을 더해서 완전제곱수가 될 수 있는지 확인해야 합니다.
따라서 입력이 n =288과 같으면 1을 더한 후 출력이 True가 되므로 17^2와 같은 289가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- res_num :=n + 1
- sqrt_val :=(res_num)의 제곱근의 정수 부분
- sqrt_val * sqrt_val이 res_num과 같으면
- 참 반환
- 거짓을 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시 코드
from math import sqrt def solve(n): res_num = n + 1 sqrt_val = int(sqrt(res_num)) if sqrt_val * sqrt_val == res_num: return True return False n = 288 print(solve(n))
입력
288
출력
True