Pagini recente » Cod sursa (job #363804) | Cod sursa (job #1324348) | Cod sursa (job #2487102) | Cod sursa (job #3183262) | Cod sursa (job #1021773)
#include <iostream>
#include <cstdio>
#include <cmath>
FILE *f,*g;
#define nmax 1000010
#define modulo 9973
bool v[nmax];
int prim[nmax/2],k=0;
using namespace std;
int main(){
f=fopen("ssnd.in","r");
g=fopen("ssnd.out","w");
int t;
// ciur
int j,p=2;
while(p<nmax)
{
if(v[p]==0)
{
prim[k++]=p;
for(j=p+p; j<nmax; j+=p)
v[j]=1;
}
p++;
}
long long n;
int suma,nr;
fscanf(f,"%d",&t);
for(j=1;j<=t;j++)
{
fscanf(f,"%lld",&n);
int p,i;
long long q=1;
nr=1;
suma=1;
for(i=0;i<k;++i)
{
if(prim[i]*prim[i]<=n)
{
if(n%prim[i])
continue;
p=1;
q=prim[i];
while(n%prim[i]==0)
{
n=n/prim[i];
p++;
q=q*prim[i];
}
nr=nr*p;
suma=(suma*(q-1)/(prim[i]-1))%modulo;
}
}
if (n>1)
{
nr=nr*2;
suma=(suma*(n+1))%modulo;
}
fprintf(g,"%d %d\n",nr,suma);
}
fclose(f);
fclose(g);
return 0;
}