Pagini recente » Cod sursa (job #42480) | Cod sursa (job #1775546) | Cod sursa (job #413737) | Cod sursa (job #29656) | Cod sursa (job #589916)
Cod sursa(job #589916)
#include <stdio.h>
#include <cmath>
#define N 1000001
using namespace std;
bool VIZ[N];
int P[100001],p;
int T;
long long A;
long long NR,SUMA;
FILE *f,*g;
void ciur()
{
int i,d;
for (i=2;i<=N;++i)
if (!VIZ[i])
{
d=i;
P[++p]=i;
while (d<=N)
{
VIZ[d]=1;
d+=i;
}
}
}
void nr_div_si_suma_div(long long nr)
{
int d,put,x,q;
SUMA=NR=1;
q=int(sqrt(double(nr)));
d=1;
while (P[d]<=q)
{
if (nr%P[d]==0)
{
put=0;
x=1;
while (nr%P[d]==0)
{
put++;
nr/=P[d];
x*=P[d];
}
NR*=(put+1);
x*=P[d];
SUMA=(SUMA*((x-1)/(P[d]-1)))%9973;
}
d++;
}
if (NR==1)
NR=2;
if (SUMA==1)
SUMA=A+1;
fprintf(g,"%lld ",NR);
fprintf(g,"%lld",SUMA);
fprintf(g,"\n");
}
void solve()
{
int i;
fscanf(f,"%d",&T);
for (i=1;i<=T;++i)
{
fscanf(f,"%lld",&A);
nr_div_si_suma_div(A);
}
}
int main()
{
f=fopen("ssnd.in","r");
g=fopen("ssnd.out","w");
ciur();
solve();
fclose(f);
fclose(g);
return 0;
}