Pagini recente » Cod sursa (job #1259326) | Cod sursa (job #327788) | Cod sursa (job #1949836) | Cod sursa (job #1916390) | Cod sursa (job #627575)
Cod sursa(job #627575)
#include <cstdio>
using namespace std;
bool v[1000001];
int p[80000];
long long nr,s;
void ciur()
{
long long i,j;
for(i=2;i<=1000000;++i)
{
if(v[i]==true)
continue;
p[++p[0]]=i;
for(j=i;j*i<=1000000;++j)
{
v[i*j]=true;
}
}
}
void descompune(long long x)
{
long long i,put;
long long a;
nr=1;
s=1;
for(i=1;p[i]*p[i]<=x;++i)
{
if(x%p[i]==0)
{
printf("%d ",p[i]);
a=(long long)p[i]*p[i];
put=1;
x/=p[i];
while(x%p[i]==0)
{
x/=p[i];
put++;
a=a*p[i];
}
nr*=put+1;
a--;
s=(a/(p[i]-1)*s)%9973;
}
}
if(x!=1)
{
printf("%d ",x);
nr*=2;
s=(((x*x-1)/(x-1))%9973*s)%9973;
}
}
int main()
{
long long n,x,i;
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
scanf("%I64d",&n);
ciur();
for(i=1;i<=n;++i)
{
scanf("%I64d",&x);
descompune(x);
printf("\n%I64d %I64d\n",nr,s);
}
return 0;
}