链接:呵呵呵
一:
直接暴力(注意范围)
#include <iostream>
#include <cstdio>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <cstdio>
using namespace std;
int main()
{
int n;
while(scanf("%d", &n) != EOF)
{
while(n--)
{
int m;
scanf("%d", &m);
int sum = 1;
for(int i = 2; i <= sqrt(m); i++)
{
if(m % i == 0)
{
sum += i;
if(i != sqrt(m))
sum += m / i;
}
}
printf("%d\n", sum);
}
}
return 0;
}
二:打表筛选
#include <iostream>
#include <cstdio>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <cstdio>
using namespace std;
int a[500001];
int main()
{
int m,n,i,j;
for(i=1; i<=500000; i++)
a[i]=1;
for(i=2; i<=250001; i++)
{
for(j=i+i; j<=500000; j+=i)
a[j]+=i;
}
scanf("%d",&m);
while(m--)
{
scanf("%d",&n);
printf("%d\n",a[n]);
}
return 0;
}