[信息OJ 2467] Asakura的难题

[信息OJ 2467] Asakura的难题 2467: G Asakura的难题

Time Limit:2000MS Memory Limit:65536KB

Description

Asakura是班里有名的捣蛋鬼,所以经常有同学到老师那里去告状。今天老师想出个题恶心一下Asakura,题目如下:
F(n)=∑| n/i | , (i=1,2,3…..n)
|x|为x向下取整,比如|3.5|=3。 Asakura想了想,很快就求出了F(n)。

Input

多组输入
对于每组测试数据:
第一行输入一个整数n(1<=n<=10^10)

Output

每组输出只包含一个整数,代表F(n)的值。
Sample Input
1
2
3

  Sample Output

1
3
5

额、- -
注意用long long
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
#define ll long long ll solve(ll n)
{
ll ans=;
ll i,x,y,t;
for(i=;i<=n;i++){
x=n/i;
y=n%i;
t=y/x;
ans+=(t+)*x;
i+=t;
}
return ans;
}
int main()
{
ll n;
while(scanf("%lld",&n)!=EOF){
printf("%lld\n",solve(n));
}
return ;
}
上一篇:JavaScript Window.document对象


下一篇:入门大数据---Spark车辆监控项目