[AHOI2005] 约数研究
题目描述
科学家们在 Samuel 星球上的探险得到了丰富的能源储备,这使得空间站中大型计算机 Samuel II 的长时间运算成为了可能。由于在去年一年的辛苦工作取得了不错的成绩,小联被允许用 Samuel II 进行数学研究。
小联最近在研究和约数有关的问题,他统计每个正数 的约数的个数,并以
来表示。例如
的约数有
,因此
。下表给出了一些
的取值:
现在请你求出:
输入格式
输入一个整数 。
输出格式
输出答案。
样例 #1
样例输入 #1
样例输出 #1
提示
- 对于
的数据,
;
- 对于
的数据,
。
思路
由于数据量大,直接暴力去分解因数会导致TLE。
不妨换个思路,用类似埃氏筛法的思路去枚举倍数。
假设n = 12,枚举 1 ~ n 小于等于n的倍数个数: 1:1、2、……、11、12,共12个 2:2、4、……、10、12,共6个 3:3、6、9、12,共4个 4:4、8、12,共3个 …… 12:12,共1个
小于等于n的倍数个数 = n / i
在 for 循环中,每次将 n / i 累加到 ans 中,实际上就是将 1 ~ n 的所有约数的数量之和求出来了。