Gửi bài giải


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

Kiểu bài tập

Cho số nguyên dương \(N\). Yêu cầu đặt ra là hãy tính tổng ước chung lớn nhất của mọi số nguyên từ \(1\) đến \(N\) với \(N\): \[S(N) = \left( \sum_{i=1}^{N} \gcd(i, N) \right) \pmod{10^9 + 7}\]

Hãy tìm phương án tính toán tối ưu khi \(N\) có giá trị rất lớn.

Định dạng đầu vào

  • Một dòng duy nhất chứa số nguyên dương \(N\) (\(1 \le N \le 10^{12}\)).

Định dạng đầu ra

  • Một số nguyên duy nhất là giá trị của tổng \(S(N) \pmod{10^9+7}\).

Ví dụ

Input:

6

Output:

15

Giải thích

Tổng bằng: \(\gcd(1,6) + \gcd(2,6) + \gcd(3,6) + \gcd(4,6) + \gcd(5,6) + \dots = 1 + 2 + 3 + 2 + 1 + 6 = 15\).

Ràng buộc

  • 30% số điểm ứng với \(N \le 10^6\).
  • 70% số điểm còn lại không có ràng buộc gì thêm.

Nhận xét

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