7096 : 제곱수 판별·분해
•시간제한: 2.000 S
•메모리제한: 256 MB
•제출: 1
•통과: 1
•만든사람: suakii
문제 설명
주어진 정수 N이 완전제곱수인지 판별하는 프로그램을 작성하십시오.
완전제곱수라면
[제약 조건]
• 판별할 정수 $N$: $1 \le N \le 10^{18}$
완전제곱수라면
YES [제곱근] 형식으로 출력하고, 완전제곱수가 아니라면 NO를 출력하십시오.[제약 조건]
• 판별할 정수 $N$: $1 \le N \le 10^{18}$
입력 설명
첫째 줄에 판별할 자연수 $N$이 주어집니다. ($1 \le N \le 10^{18}$)
출력 설명
완전제곱수이면 YES 제곱근, 아니면 NO를 출력합니다.
입력 예시
COPY
복사되었습니다!
복사되었습니다!
16
출력 예시
COPY
복사되었습니다!
복사되었습니다!
YES 4
도움
정밀도 오차를 회피하기 위해 정수 제곱근(math.isqrt 등)을 계산한 뒤 제곱하여 비교합니다.