Pagini recente » Cod sursa (job #347411) | Cod sursa (job #3132013) | Cod sursa (job #1588986) | Cod sursa (job #3229102) | Cod sursa (job #431305)
Cod sursa(job #431305)
#include <fstream>
using namespace std;
long long m,numar,n,set,t,i,j;
int a[100000];
long long prod_sus,prod_jos,prod;
bool prim[1000000];
long long x,nr;
long long putere(long long num,long long p)
{
long long i,sol=1;
for(i=0;(1<<i)<=p;++i)
{
if (((1<<i)&p)>0) sol=(sol*num);
num=(num*num);
}
return sol;
}
int main()
{
long long p;
ifstream fi("ssnd.in");
ofstream fo("ssnd.out");
m=9973;
n=0;
for(i=2;i<=1000000;i++)
if(!prim[i]) { a[++n]=i; for(j=2*i;j<=1000000;j+=i) prim[j]=1; }
fi>>t;
for(set=1;set<=t;set++)
{
fi>>nr;
//x=(int)sqrt(nr);
prod_sus=1; numar=1;
prod_jos=1; prod=1;
i=1;
x=nr;
for(i=1;i<=n&&a[i]<=x/2;i++)
if(nr%a[i]==0)
{
p=0;
while(nr%a[i]==0) { nr/=a[i]; p++; }
prod_sus=putere(a[i],p+1)-1;
prod_jos=a[i]-1;
prod=(prod*(prod_sus/prod_jos)%m)%m;
numar*=(p+1);
}
if(numar==prod==1) fo<<"2 "<<(nr+1)%m<<"\n"; else
fo<<numar<<" "<<prod<<"\n";
}
fo.close();
return 0;
}