题目描述
【题意】
若f(N)表示正整数N约数个数。例如f(6)=4(1,2,3,6)。
免费送大家一个表:
N | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
f(N) | 1 | 2 | 2 | 3 | 2 | 4 |
现在定义若m=f(1)+f(2)+…+f(n),则称m为n的白菜数。
【输入格式】
输入一行,一个整数n
【输出格式】
输出n的白菜数m
【输入样例】
3
【输出样例】
5
如果令n=4
是1的倍数的有4个,是2的倍数有2个,是3的倍数有1个,是4的倍数有1个
因此,一共f(n)=4+2+1+1=8
也就是换了一种求法
include
include
using namespace std;
int main()
{
int n,s=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)s=s+n/i;//表示n里面是i的倍数有(n/i)个
printf("%d
",s);
return 0;
}