๋ฌธ์
https://www.acmicpc.net/problem/1300
1300๋ฒ: K๋ฒ์งธ ์
์ธ์ค์ด๋ ํฌ๊ธฐ๊ฐ N×N์ธ ๋ฐฐ์ด A๋ฅผ ๋ง๋ค์๋ค. ๋ฐฐ์ด์ ๋ค์ด์๋ ์ A[i][j] = i×j ์ด๋ค. ์ด ์๋ฅผ ์ผ์ฐจ์ ๋ฐฐ์ด B์ ๋ฃ์ผ๋ฉด B์ ํฌ๊ธฐ๋ N×N์ด ๋๋ค. B๋ฅผ ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ์ ๋, B[k]๋ฅผ ๊ตฌํด๋ณด์. ๋ฐฐ์ด A์ B
www.acmicpc.net
ํ์ด
# ๋ฐฑ์ค 1300๋ฒ ๋ฌธ์ - K๋ฒ์งธ ์
n, k = int(input()), int(input())
start, end = 1, k
while start <= end:
mid = (start+end) // 2
cnt = 0
for i in range(1, n+1):
cnt += min(mid//i, n)
if cnt >= k:
answer = mid
end = mid - 1
else:
start = mid + 1
print(answer)