Pagini recente » Cod sursa (job #423365) | Cod sursa (job #2023579) | Cod sursa (job #261780) | Cod sursa (job #1120956) | Cod sursa (job #792124)
Cod sursa(job #792124)
#include <stdio.h>
char nuprim[1000002];
int p[300000];
int main()
{
FILE *f, *g;
f=fopen("ssnd.in","r");
g=fopen("ssnd.out","w");
int i,j,t,nr=0,pu, e;
long long n,numar,suma;
fscanf(f,"%d",&t);
//printf("am ajuns aici\n");
for(i=2;i*i<=1000000;i++)
{
if(nuprim[i]==0)
{
for(j=i*i;j<=1000000;j+=i) nuprim[j]=1;
}
}
//printf("am ajuns aici\n");
for(i=2;i<=1000000;i++) if(nuprim[i]==0) p[++nr]=i;
for(i=1;i<=t;i++)
{
//printf("am ajuns aici\n");
numar=1; suma=1;
fscanf(f,"%lld",&n);
for(j=1;(long long) p[j]*p[j]<=n;j++)
{
pu=1; e=0;
while(n%p[j]==0)
{
e++;
pu*=p[j];
n/=p[j];
}
numar*=(e+1);
suma=(suma*(pu*p[j]-1)/(p[j]-1))%9973;
}
//printf("am ajuns aici\n");
if(n!=1)
{
numar*=2;
suma=(suma*(n+1))%9973;
}
fprintf(g,"%lld %lld\n",numar,suma);
}
return 0;
}