Pagini recente » Mihnea Andreescu | Profil elena284 | Cod sursa (job #2553527) | Cod sursa (job #809076) | Cod sursa (job #522943)
Cod sursa(job #522943)
#include<fstream.h>
#include<iostream.h>
#include<math.h>
#define N 1000000
int test,u,p[N]={0},nr;
long long n,t,s;
long v[N],k,i,j,r,q;
void sieve(long x[N],long *k,int p[N])
{long i;
for(i=2;i<=N;i++)
if(p[i]==0)
{x[++(*k)]=i;
for(j=i+i;j<=N;j+=i)
p[j]=1;}}
int main()
{fstream f1("ssnd.in",ios::in);
fstream f2("ssnd.out",ios::out);
clock_t t1,t2;
t1=clock();
f1>>test;
k=0;
sieve(v,&k,p);
for(u=1;u<=test;u++)
{f1>>n;
j=0;
t=n;
i=1;
s=1;
nr=1;
while(t!=1&&v[i]<=sqrt(n))
{while(t%v[i]==0)
{j++;
t/=v[i];
if(t==1)
{nr=nr*(j+1);
q=v[i]+1;
for(r=1;r<j;r++)
q=q*v[i]+1;
s=s*q;
j=0;}}
if(j!=0)
{nr=nr*(j+1);
q=v[i]+1;
for(r=1;r<j;r++)
q=q*v[i]+1;
s=s*q;
j=0;}
i++;}
if(t>1)
{nr=nr*2;
s=s*(t+1);}
if(s==1)
{nr=2;
s+=n;}
f2<<nr<<" "<<(s%9973)<<endl;}
f1.close();
f2.close();
return 0;}