ZZNU 正约数之和

Posted 0一叶0知秋0

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ZZNU 正约数之和相关的知识,希望对你有一定的参考价值。

F : 正约数之和

 
Progress Bar

时间限制:1 Sec 内存限制:128 MiB
提交:267 答案正确:93

 

 


题目描述

我们把f(i)表示为i的正约数的和,而我们要求的是1<=i<=n之间所有i的f(i)之和!

输入

先输入一个正整数T,表示T个这是数据。T(T<=50)
每行输入一个正整数n。(n<10^6)

输出

输出一个数字,表示所求的数。

样例输入

复制
3
5
12
2018

样例输出

复制
21
127
3350309
    #include <iostream>
    using namespace std;
     
    int main() {
        int T, n;
        cin >> T;
        while(T--) {
          cin >> n;
          long long ans = 0;
          for(int i=1; i<=n; i++) {
              ans += n/i*i;
          }
          cout << ans << endl;
        }
        return 0;
    }
# include <stdio.h>
# include <string.h>


int a[1300001];


int main(void)
{
    int i, j;
            //把每个数的约数存在数组里。
    for (i = 1; i <= 7000000; i ++)
    {
        for (j = i; j <= 1300000; j = j+i)
        {
            a[j] += i;
        }
    }
    int t, n;
    long long sum;
    scanf("%d", &t);
    while (t --)
    {
        sum = 0;
        scanf("%d", &n);
        for (i = 1; i <= n; i ++)
            sum += a[i];
        printf("%lld\n", sum);
    }
    return 0;
}

 

以上是关于ZZNU 正约数之和的主要内容,如果未能解决你的问题,请参考以下文章

19: 约数之和

poj 1845 Sumdiv(约数和,乘法逆元)

51nod 1220 约数之和

约数之和

P1734 最大约数和

P1734 最大约数和