Pagini recente » Cod sursa (job #105074) | Cod sursa (job #1806263) | Cod sursa (job #1783348) | Cod sursa (job #848868) | Cod sursa (job #1514880)
#include<stdio.h>
#include<math.h>
FILE *fin,*fout;
bool ciur[1000001];
int prime[100000],pr,t,x,co,go,v;
int el,sm;
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");
pr=1;
prime[pr]=2;
for(int i=3;i<1000001;i+=2)
{
if(ciur[i]==0)
{
for(int j=i;j<1000001/i;j+=2)
{
ciur[i*j]=1;
}
pr++;
prime[pr]=i;
}
}
fscanf(fin,"%d",&t);
for(int i=1;i<=t;i++)
{
sm=1;
el=1;
fscanf(fin,"%d",&x);
go=sqrt(x);
for(int j=1;prime[j]<=x&&j<=pr;j++)
{
co=0;
v=prime[j];
while(x%v==0)
{
co++;
x/=v;
}
if(co!=0)
{
el*=(co+1);
sm*=(po(v,co+1)-1);
sm/=(v-1);
sm%=9973;
}
}
fprintf(fout,"%d %d\n",el,sm);
}
}