Pagini recente » Cod sursa (job #1980472) | Cod sursa (job #914245) | Cod sursa (job #1458661) | Cod sursa (job #2827103) | Cod sursa (job #1410351)
#include<iostream>
#include<fstream>
#include<math.h>
using namespace std;
ifstream in("ssnd.in");
ofstream out("ssnd.out");
#define MAX 1000010
long long V[MAX],N,nr=1,s=1;
int t;
void ciur(long long V[MAX],int sqrtN)
{
int i,j,pr,nd,d;
long long el;
for(i=2;i<=sqrtN;i++)
{
if(V[i]==0)
{
el=N;
pr=1;
nd=0;
d=i;
while(el%d==0)
{
nd++;
pr=pr*d;
el=el/d;
}
nr=nr * (nd+1);
s=(s* (pr*d-1)/(d-1))%9973L;
for(j=2;j<=sqrtN/i;j++)
V[i*j]=1;
}
else
V[i]=0;
}
if(nr==1)
{
nr=2;
s=N+1;
}
}
int main()
{
in>>t;
for(int i=1;i<=t;i++)
{
in>>N;
nr=1,s=1;
ciur(V,sqrt(N));
out<<nr<<" "<<s<<'\n';
}
in.close();
out.close();
return 0;
}