프로그래밍 알고리즘

[정올 1240] 제곱근

꾸준한사람 2023. 1. 2. 22:33
반응형

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&code=1240&sca=99 

 

JUNGOL

 

www.jungol.co.kr

#include <stdio.h>

typedef unsigned long long u64;
u64 N;

//Binary Search
u64 bsearch(u64 s, u64 e, u64 target)
{
	u64 ans = target, mid;
	while (s <= e) {
		mid = (s + e) / 2;
		if (mid <= target / mid)	ans = mid, s = mid + 1;
		else						e = mid - 1;
	}

	return ans;
}

int main(void)
{
	scanf("%lld", &N);
	u64 i = 0, s = 1, e = N/2;

	//N의 제곱근은 N/2보다 클 수가 없기 때문에, 1과 N/2 사이에서 제곱근 값을 찾는다.
	printf("%lld\n", bsearch(1, N/2, N)); 

	return 0;
}
반응형