一道很妙的题

洛谷p1403

题目描述

小联最近在研究和约数有关的问题,他统计每个正数 N 的约数的个数,并以 f(N) 来表示。例如 12 的约数有 1,2,3,4,6,12因此 \(f(12)=6\)下表给出了一些 f(N) 的取值:

\(N\) 1 2 3 4 5 6
\(F(N)\) 1 2 2 3 2 4

\(i=1,n∑f(i)\)

分析

我们要求的是从1到n所有约数的个数

我们可以分类求,约数是1的,约数是2的,约数是3的,每个约数的个数都等于\(n/i\)

则答案就是他们的和

for(int i=1;i<=n;i++)//n是要求的数
    ans=ans+n/i;

猜你喜欢

转载自www.cnblogs.com/bangdexuanyuan/p/13390236.html