文章

99

粉丝

120

获赞

8

访问

109.6k

头像
约数求和
备考心情
发布于2024年9月3日 12:28
阅读数 1.1k

#include <iostream>

using namespace std;

int main() {

    long long int n, count = 0;

    cin >> n;

    for (long long int i = 1; i <= n / 2; ++i) {

        //计算[1,n/2]各个约数出现的次数(n/i),结果*i就是约数i的总和

        count += n / i * i;

    }

    //计算[n/2+1,n]各个约数出现的次数

    //这个范围内的约数只出现一次,因此用等差数列求和公式计算

    count += (n - n / 2) * (n / 2 + 1 + n) / 2;

    cout << count << endl;

}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发