约数和

题目描述

【题意】

若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\n",s);
return 0;
}

posted @ 2019-08-23 18:54  天殇梦璃  阅读(150)  评论(0编辑  收藏  举报