Cod sursa(job #1982333)
| Utilizator | Data | 18 mai 2017 12:37:54 | |
|---|---|---|---|
| Problema | Suma si numarul divizorilor | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.67 kb |
#include <bits/stdc++.h>
using namespace std;
vector <int> a(1000001,0);
int main()
{
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int t,x,maxx=1000001,s=0;
f>>t;
for (int i=1;i<=maxx;++i)
{
a[i]++;
for (int j=i+i;j<=maxx;j+=i)
{
a[j]++;
}
}
for (int i=1;i<=t;++i)
{
f>>x;
s=1+x;
for (int i=2;i*i<=x;++i)
{
if (x%i==0)
{
s+=i+x/i;
}
if (i*i==x)
{
s-=i;
}
}
g<<a[x]<<" "<<s<<endl;
}
return 0;
}
