Cod sursa(job #1648469)
Utilizator | Avram Rares Stefan avramrares | Data | 11 martie 2016 10:21:06 |
---|---|---|---|
Problema | Suma si numarul divizorilor | Scor | 70 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.81 kb |
#include <fstream>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int z,p,n,d,i,j;
long long nr,s,h,nd,t,cn,v;
int main()
{
f>>n;
d=2;
for(i=1; i<=n; i++)
{
d=h=2;
s=nr=1;
f>>t;
cn=t;
while(t!=1 && h*h<=cn)
{
p=0;
v=h;
while(t%h==0)
{
t/=h;
v=v*h;
p++;
}
if(p!=0)
{
nr=nr*(p+1);
s=s*(v-1)/(h-1);
}
h++;
}
if(t>1)
{
nr*=2;
s=s*(t*t-1)/(t-1)%9973;
g<<nr<<" "<<s<<endl;
}
else
g<<nr<<" "<<s%9973<<endl;
}
return 0;
}