NOIP培训Day9 [1]约数研究
约数研究
(num.pas/c/cpp)
时限1s,空间256MB
【题目背景】
F(n)表示n的约数个数,现在给出n,要求求出f(1)到f(n)的总和。
【输入格式】
输入一行,一个整数n
【输出格式】
输出一个整数,表示总和
【样例输入】
3
【样例输出】
5
【数据范围】
20%:N<=5000
100%:N<=1000000
【题解】
这题完全是一道水题!
具体代码实现:(By Tony)
/*
* Number theory Problem - Sum of divisors
* Code By TonyFang
* Mail To tony-fang@foxmail.com
* Copyright TonyFang (in CodeForces) 2013
* All rights reserved.
* Copyright TonyFang 2000-2013 (now)
* All rights reserved.
* num.cpp / input:num.in / output:num.out
*/
# include <iostream>
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
# include <math.h>
# include <algorithm>
using namespace std;
int main() {
freopen("num.in","r",stdin);
freopen("num.out","w",stdout);
long long n,ans = 0;
cin >> n;
for (int i = 1;i <= n / 2;i ++)
ans += n / i;
if (n & 1) ans += n / 2 + 1;
else ans += n / 2;
cout << ans << endl;
return 0;
}
这篇文章由TonyFang发布。
所有解释权归TonyFang所有。
Mailto: tony-fang@map-le.net

浙公网安备 33010602011771号