Pagini recente » Cod sursa (job #1790380) | Cod sursa (job #1516080) | Cod sursa (job #1208208) | Cod sursa (job #2362294) | Cod sursa (job #582249)
Cod sursa(job #582249)
#include<fstream>
#include<cmath>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
long long prim[10001],ma,i,j;
void ciur(long long num)
{int a;
a=sqrt(num);
for(i=2;i<=a;i++)
prim[i]=1;
for(i=2;i<=a;i++)
if(prim[i])
for(j=i*i;j<=a;j+=i)
prim[j]=0;
}
long long putere(long long expo)
{long long k,p;
p=1;
for(k=1;k<=expo;k++)
p*=i;
return p;
}
int main()
{ long long nr,suma;
int t,fm,v[1001];
f>>t;
for(j=1;j<=t;j++)
{f>>v[j]; if(ma<v[j]) ma=v[j];} ciur(ma);
for(j=1;j<=t;j++)
{ nr=suma=1;
if(prim[v[j]]) {nr*=2; suma*=(1+v[j]);}
else {i=2;
do
{fm=0;
while(v[j]%i==0)
{fm++;
v[j]/=i;}
nr*=(fm+1);
suma*=(putere(fm+1)-1)/(i-1);
if(prim[v[j]]==0 ) i++;
else i=v[j];
}
while(v[j]!=1);
}g<<nr<<" "<<suma%9973<<'\n';}
}