Pagini recente » Cod sursa (job #925386) | Cod sursa (job #667261) | Cod sursa (job #2401953) | Cod sursa (job #2713946) | Cod sursa (job #880720)
Cod sursa(job #880720)
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
ifstream in("ssnd.in");
ofstream out("ssnd.out");
int i,t,n,aux,a,nr,primi[59000][2];
long long j,s,g;
bool v[1000020];
void ciur()
{primi[1][1]=2;a=2;
for(i=3;i<=1000000;i+=2)
if(v[i]==0)
{
primi[a][1]=i;
a++;
for(j=i;j<=1000000;j=j+i)
v[j]=1;
}
}
int main()
{
ciur();
in>>t;
while(t)
{
s=1;nr=1;
in>>n;aux=n;
for(i=1;primi[i][1]<=sqrt((float) n) && aux>1;i++)
{
if(aux%primi[i][1]==0)
{
while(aux%primi[i][1]==0)
{
aux=aux/primi[i][1];
primi[i][2]++;
}
nr=nr*(primi[i][2]+1);
g=pow(primi[i][1],primi[i][2]+1);
g=g%9973;
s=s*((g-1)/(primi[i][1]-1))%9973;
primi[i][2]=0;
}
}
if(nr==s&&s==1)
out<<2<<" "<<n+1<<'\n';
else
out<<nr<<" "<<s<<'\n';
t--;
}
in.close();
out.close();
return 0;
}