Cod sursa(job #1204948)
| Utilizator | Data | 4 iulie 2014 14:43:43 | |
|---|---|---|---|
| Problema | Suma si numarul divizorilor | Scor | 60 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.64 kb |
#include<fstream>
#include<cmath>
#include<algorithm>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
const int modulo=9973;
int t,nr;
long long n,sum;
inline void SOLVE(long long x)
{
int i,aux;
if (x==1) {sum=1;nr=1;}
else
{
sum=1+x;
nr=2;
aux=sqrt(x);
for (i=2;i<=aux;i++)
if (x%i==0) {sum+=i;sum+=x/i;sum%=modulo;nr+=2;}
}
sum%=modulo;
fout<<nr<<" "<<sum<<"\n";
}
int main()
{
fin>>t;
while (t--)
{
fin>>n;
SOLVE(n);
}
return 0;
}
