#include <bits/stdc++.h>
using namespace std;
#define MOD 1000000007
// Hàm tính tổng các ước của mỗi số từ 1 đến n
long long sumOfDivisors(int n) {
long long result = 0;
for (int i = 1; i <= n; ++i) {
// Đối với mỗi số i, tổng các ước của nó có thể tính bằng công thức (i * (n / i) * (n / i + 1)) / 2
// n / i là số lượng số nguyên có ước là i trong khoảng từ 1 đến n
long long count = n / i;
result = (result + i * count % MOD * (count + 1) % MOD * 500000004 % MOD) % MOD; // 500000004 là nghịch đảo mod của 2
}
return result;
}
int main() {
int n;
cin >> n;
cout << sumOfDivisors(n) << endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIE1PRCAxMDAwMDAwMDA3CgovLyBIw6BtIHTDrW5oIHThu5VuZyBjw6FjIMaw4bubYyBj4bunYSBt4buXaSBz4buRIHThu6sgMSDEkeG6v24gbgpsb25nIGxvbmcgc3VtT2ZEaXZpc29ycyhpbnQgbikgewogICAgbG9uZyBsb25nIHJlc3VsdCA9IDA7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyArK2kpIHsKICAgICAgICAvLyDEkOG7kWkgduG7m2kgbeG7l2kgc+G7kSBpLCB04buVbmcgY8OhYyDGsOG7m2MgY+G7p2EgbsOzIGPDsyB0aOG7gyB0w61uaCBi4bqxbmcgY8O0bmcgdGjhu6ljIChpICogKG4gLyBpKSAqIChuIC8gaSArIDEpKSAvIDIKICAgICAgICAvLyBuIC8gaSBsw6Agc+G7kSBsxrDhu6NuZyBz4buRIG5ndXnDqm4gY8OzIMaw4bubYyBsw6AgaSB0cm9uZyBraG/huqNuZyB04burIDEgxJHhur9uIG4KICAgICAgICBsb25nIGxvbmcgY291bnQgPSBuIC8gaTsKICAgICAgICByZXN1bHQgPSAocmVzdWx0ICsgaSAqIGNvdW50ICUgTU9EICogKGNvdW50ICsgMSkgJSBNT0QgKiA1MDAwMDAwMDQgJSBNT0QpICUgTU9EOyAvLyA1MDAwMDAwMDQgbMOgIG5naOG7i2NoIMSR4bqjbyBtb2QgY+G7p2EgMgogICAgfQogICAgcmV0dXJuIHJlc3VsdDsKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgbjsKICAgIGNpbiA+PiBuOwogICAgY291dCA8PCBzdW1PZkRpdmlzb3JzKG4pIDw8IGVuZGw7CiAgICByZXR1cm4gMDsKfQo=