Cod sursa(job #1800402)
Utilizator | Gaman Eduard-Marian gamanedy | Data | 7 noiembrie 2016 19:13:21 |
---|---|---|---|
Problema | Suma si numarul divizorilor | Scor | 70 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.75 kb |
#include <fstream>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
int t,i,c;
long long n,s,nrd,y,j;
int main()
{
fin>>t;
for(i=1;i<=t;i++)
{
fin>>n;
s=1;
nrd=1;
for(j=2;j*j<=n;j++)
{
if(n%j==0)
{
c=0;
y=1;
while(n%j==0)
{
c++;
n=n/j;
y=y*j;
}
nrd=nrd*(c+1);
s=s*((y*j-1)/(j-1))%9973;
}
}
if(n>1)
{
nrd=nrd*2;
s=s*(n+1)%9973;
}
fout<<nrd<<" "<<s<<'\n';
}
return 0;
}