小G的sum

题目链接:nowcoder 218396

到主站看:https://blog.csdn.net/weixin_43346722/article/details/114551682

题目大意

求 1~n 中每个数最小的约数和最大的约数的和。

思路

大家都知道,一个数最小的约数是 ,最大的约数是它自己。

那就是等于 ,然后化简一下:

然后就可以 求了。

代码

#include<cstdio>

using namespace std;

int n;

int main() {
    scanf("%d", &n);

    printf("%lld", 1ll * n * (n + 3) >> 1ll);

    return 0;
}