Căn bậc hai số nguyên

Xem dưới dạng PDF

Gửi bài giải


Điểm: 15
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 64M
đầu vào: stdin
Đầu ra: stdout

Tác giả:
Kiểu bài tập

Cho một số nguyên dương \(N\). Hãy tìm số nguyên không âm \(X\) lớn nhất sao cho: \(X^2 \le N\)

Yêu cầu: Không được sử dụng các hàm tính căn bậc hai có sẵn của ngôn ngữ lập trình (như sqrt() hay pow()) để tránh các sai số số thực và rèn luyện thuật toán tìm kiếm nhị phân.

Dữ liệu vào
  • Một dòng duy nhất chứa số nguyên dương \(N\) (\(1 \le N \le 10^{18}\)).
Dữ liệu ra
  • In ra một số nguyên duy nhất là giá trị \(X\) lớn nhất thỏa mãn.
Ví dụ

Đầu vào:

10

Đầu ra:

3

Giải thích: \(3^2 = 9 \le 10\), còn \(4^2 = 16 > 10\). Do đó số nguyên lớn nhất là \(3\).


Nhận xét

Không có ý kiến tại thời điểm này.