51 Nod 1225 餘數之和

2021-08-09 05:14:32 字數 870 閱讀 7159

基準時間限制:1 秒 空間限制:131072 kb 分值: 80 難度:5級演算法題

f(n) = (n % 1) + (n % 2) + (n % 3) + …… (n % n)。其中%表示mod,也就是餘數。

例如f(6) = 6 % 1 + 6 % 2 + 6 % 3 + 6 % 4 + 6 % 5 + 6 % 6 = 0 + 0 + 0 + 2 + 1 + 0 = 3。

給出n,計算f(n), 由於結果很大,輸出mod 1000000007的結果即可。

input

輸入1個數n(2 <= n <= 10^12)。

output

輸出f(n) mod 1000000007的結果。

input示例

6 output示例

解析上面寫的很清楚了。。。。

#include

#include

#include

#include

using

namespace

std;

#define ll long long

const ll mod = 1e9 + 7;

const ll inv = 5e8 + 4;

int main(int argc,char *argv)

printf("%i64d\n", ans);

return

0;}

乘以 inv 的地方本來要除以2,2 在mod 1e9+7 意義下的逆元就是 5e8+4(即 inv)

51Nod 1225 餘數之和

acm模版 對於數論只會打表找規律的我來說,我一上來就打了一張表,然後發掘其中的規律 沒法子,腦子跟不上,推不出來規律,只能找規律。通過這個表我們可以發現 從第100項到51項是等差數列0 49,base 1 從第50項到34項是等差數列0 32,base 2 從第33項到26項是等差數列1 22,...

51Nod1225餘數之和

題目鏈結 題意 f n n 1 n 2 n 3 n n 其中 表示mod,也就是餘數。例如f 6 6 1 6 2 6 3 6 4 6 5 6 6 0 0 0 2 1 0 3。給出n,計算f n 由於結果很大,輸出mod 1000000007的結果即可。輸入 輸入1個數n 2 n 10 12 輸出 輸...

51nod1225 餘數之和

打表可以看出規律。分塊求就可以了。include include include includeusing namespace std define ll long long ll read const ll mod 1e9 7 const ll tt 5e8 4 int main printf l...