[Silver IV] 제곱근 - 13706
성능 요약
메모리: 110616 KB, 시간: 112 ms
분류
수학, 이분 탐색, 임의 정밀도 / 큰 수 연산
제출 일자
2026년 04월 25일 22:04:59
문제 설명
정수 N이 주어졌을 때, N의 제곱근을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 양의 정수 N이 주어진다. 정수 N의 제곱근은 항상 정수이며, N의 길이는 800자리를 넘지 않는다.
출력
첫째 줄에 정수 N의 제곱근을 출력한다.
💡 해결 방법
💻 코드
# 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율
# 2 초 512 MB 6713 2032 1659 35.685%
# 문제
# 정수 N이 주어졌을 때, N의 제곱근을 구하는 프로그램을 작성하시오.
# 입력
# 첫째 줄에 양의 정수 N이 주어진다. 정수 N의 제곱근은 항상 정수이며, N의 길이는 800자리를 넘지 않는다.
# 출력
import math
a = int(input())
def sqrt(front, back, n):
mid = (front + back) // 2
while mid ** 2 != n:
if mid ** 2 < n: # 늘려야한다
front = mid
back = back
mid = (front + back) // 2
elif mid ** 2 > n:#줄여야 한다
front = front
back = mid
mid = (front + back) // 2
return mid
print(sqrt(1, a, a))#front, back, target