Pagini recente » Cod sursa (job #2594727) | Cod sursa (job #486188) | Cod sursa (job #196859) | Cod sursa (job #586616) | Cod sursa (job #859149)
Cod sursa(job #859149)
#include <stdio.h>
#include <math.h>
using namespace std;
FILE *f=fopen("ssnd.in","r");
FILE *g=fopen("ssnd.out","w");
int v[1000001],i,j,x,t,nr,p,s,m,l;
long long div,div2;
void ciur()
{
v[2]=0;
for(i=3;i<=1000000;i+=2)
if (v[i]==0)
{
for(j=3;j<=1000000/i;j+=2)
v[i*j]=1;
}
}
int main()
{
fscanf(f,"%d",&t);
ciur();
for(i=1;i<=t;i++)
{
fscanf(f,"%d",&x);
nr=1;
s=(1+x)%9973;
m=trunc(sqrt(x));
l=x;
for(j=2;j<=m;j++)
if (x%j==0 && v[j]==0 &&(j%2!=0||j==2) )
{
p=0;
div=1;
while(l%j==0){
p++;l=l/j;
div=div*j;
div2=x/div;
if (div<=m)
{
if (div2>m)s=(s+(div)%9973+(div2)%9973)%9973;
else s=(s+(div)%9973)%9973;
}
}
nr=nr*(p+1);
}
if (v[x]==0 && x%2!=0){nr++;}
fprintf(g,"%d %d\n",nr,s);
}
fclose(g);
return 0;
}