Phối hợp (CK OLP MTTN lần V)

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1800 Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Nhóm \(n\) người bạn, các bạn có số hiệu từ \(1\) đến \(n\). Với hai bạn có số hiệu \(a\)\(b\), khi cùng làm việc với nhau, độ phối hợp là \(f(a,b)\), giá trị này được tính bằng tổng các số nguyên dương vừa là ước của \(a\) vừa là ước của \(b\).

Yêu cầu: Hãy tính tổng độ phối hợp của tất cả các cặp bạn trong nhóm, cụ thể cần tính giá trị \(\sum_{a=1}^{n-1}\sum_{b=a+1}^n f(a,b)\).

Input

  • Vào từ thiết bị vào chuẩn gồm một số nguyên dương \(n\).

Output

  • Ghi ra thiết bị ra chuẩn một dòng chứa một số là phần dư của kết quả tính được chia cho \((10^9 + 7)\).

Scoring

  • Subtask \(1\) (\(30\%\)): \(n \leq 10^2\)
  • Subtask \(2\) (\(30\%\)): \(n \leq 10^3\)
  • Subtask \(3\) (\(20\%\)): \(n \leq 10^6\)
  • Subtask \(4\) (\(20\%\)): \(n \leq 10^{14}\)

Example

Test 1

Input
4
Output
8
Note

\(f(1,2) = 1\); \(f(1,3) = 1\); \(f(1,4) = 1\);
\(f(2,3) = 1\); \(f(2,4) = 3\);
\(f(3,4) = 1\).

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.