Pagini recente » Cod sursa (job #1035793) | Cod sursa (job #444648) | Cod sursa (job #1910765) | Cod sursa (job #2811358) | Cod sursa (job #904202)
Cod sursa(job #904202)
#include <stdio.h>
FILE *f,*s;
long long int i,j,k,m,n,p;
int v1[1000005],v2[1000005];
long long int pow(long long int a,long long int b, long long int c)
{
long long int r;
while(b!=0)
{
if(b%2==1)
r=(r*a)%c;
a=(a*a)%c;
b=b/2;
}
return r;
}
int main()
{
f=fopen("ssnd.in","r");
s=fopen("ssnd.out","w");
fscanf(f,"%lld",&n);
v2[++v2[0]]=2;
for(i=3;i<=1000000;i+=2)
{
if(v1[i]==0)
{
v2[++v2[0]]=i;
for(j=i+i;j<=1000000;j+=i)
v1[j]=1;
}
}
for(i=1;i<=n;i++)
{
fscanf(f,"%lld",&m);
int nr=m;
long long int nrd=1;
long long int sum=1;
for(j=1;v2[j]*v2[j]<=nr;j++)
{
p=0;
while(nr%v2[j]==0)
{
p++;
nr/=v2[j];
}
if(p!=0)
{
nrd*=(p+1);
//sum*=(pow(v2[j],p+1,9973)-1)/(v2[j]-1);
//sum%=9973;
}
}
if(nr>1)
{
nrd*=2;
//sum*=(pow(nr,2,9973)-1)/(nr-1);
//sum%=9973;
}
fprintf(s,"%lld %lld\n",nrd,sum);
}
fclose(s);
return 0;
}