Pagini recente » Cod sursa (job #1870992) | Cod sursa (job #2959147) | Cod sursa (job #2180807) | Cod sursa (job #3120899) | Cod sursa (job #1514900)
#include<stdio.h>
#include<math.h>
FILE *fin,*fout;
bool ciur[1000001];
int prime[100000],pr,t,co,go;
long long int el,sm,x;
long long int po(int nr,int p)
{
long long val=nr,res=1;
for(;p!=0;p>>=1)
{
if((p&1)==1)
{
res*=val;
}
val*=val;
}
return res;
}
int main()
{
fin=fopen("ssnd.in","r");
fout=fopen("ssnd.out","w");
for(int i=2;i<1000001;i++)
{
if(ciur[i]==0)
{
for(int j=2;j<1000001/i;j++)
{
ciur[i*j]=1;
}
}
}
for(int i=2;i<1000001;i++)
{
if(ciur[i]==0)
{
pr++;
prime[pr]=i;
}
}
fscanf(fin,"%d",&t);
for(int i=1;i<=t;i++)
{
sm=1;
el=1;
fscanf(fin,"%lld",&x);
go=sqrt(x);
for(int j=1;prime[j]<=x&&j<=pr;j++)
{
if(x%prime[j]==0)
{
co=0;
while(x%prime[j]==0)
{
co++;
x/=prime[j];
}
if(co!=0)
{
el*=(co+1);
sm*=(po(prime[j],co+1)-1);
sm/=(prime[j]-1);
sm%=9973;
if(x==1)
{
break;
}
}
}
}
fprintf(fout,"%lld %lld\n",el,sm);
}
}