题目意思很简单,不解释

有两种方法,

1是暴力法,不就是

2就是下面要讲的方法

假如果说一个数n可以被b整除,那么一定可以被b的因子整除

那么我需要做的就是枚举这些因子

多余的请看代码

 

#include <iostream>
#include <cstdio>
using namespace std;

int n,T,f[500001];

int main(){
    f[1]=1;
    for (int i=1;i<=250000;i++)
        for (int j=i+i;j<=500000;j+=i)
            f[j]+=i;
    cin>>T;
    while(T--){
        scanf("%d",&n);
        printf("%d\n",f[n]);
    }
    return 0;
}
View Code