PTSQR - Bình phương

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 0.01s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift
  • Cho một số nguyên dương ~n~, hãy viết chương trình trả lời câu hỏi: Để phân chia một số nguyên dương bất kì không vượt quá ~n~ sao cho số bình phương được sử dụng ít nhất, ta cần nhiều nhất bao nhiêu bình phương?

Input

  • Số nguyên dương ~n (1 \le n \le 10^{18})~.

Output

  • Đáp án của câu hỏi trên.
  • Lưu ý: Đáp án có thể rất lớn nên hãy in ra đáp án sau khi chia dư cho ~10^9 + 7~.

Sample

Input #1
1
Output #1
1
Input #2
3
Output #2
3
Input #3
4
Output #3
3

Hint

Giải thích #3:

  • ~1 = 1^2~, sử dụng ít nhất ~1~ số bình phương,
  • ~2 = 1^2 + 1^2~, sử dụng ít nhất ~2~ số bình phương,
  • ~3 = 1^2 + 1^2 + 1^2~, sử dụng ít nhất ~3~ số bình phương,
  • ~4 = 2^2~, sử dụng ít nhất ~1~ số bình phương,

Vậy để phân tích số bất kì không vượt quá ~n~, ta sử dụng nhiều nhất ~3~ lần bình phương.


Bình luận

Hãy đọc nội quy trước khi bình luận.



  • -1
    trieutungvp123  đã bình luận lúc 6, Tháng 10, 2023, 6:48

    có ai giải được bài này bằng Java chưa ạ :(