題目鏈接:here~~
#include <iostream>
#include <cstdio>
using namespace std;
int a[500010];
int main()
{
int n, N;
for (int i=1; i*i<=500000; i++)
{
for (int j=i; j*i<=500000; j++)
{
if (j==i) {a[i*j]+=i;continue;}//如果i==j,i*j只加一個i
a[i*j]+=i+j;//i不等j,把i*j那一項加上它的因子i和j
}
}
scanf("%d", &N);
while (N--)
{
scanf("%d", &n);
printf("%d\n", a[n]-n);
}
return 0;
}