Pagini recente » Cod sursa (job #34567) | Cod sursa (job #1584193) | Cod sursa (job #2583793) | Cod sursa (job #35998) | Cod sursa (job #957410)
Cod sursa(job #957410)
#include<cstdio>
#define lmax 1000005
using namespace std;
int prime[lmax];
bool use[lmax];
int main()
{
int i,n,l=0;
long long x;
for(i=2;i<lmax;i++)
if(!use[i])
{
prime[l++]=i;
for(int j=i+i;j<lmax;j+=i)
use[j]=1;
}
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
scanf("%d",&n);
while(n--)
{
scanf("%lld",&x);
int nr=1,s=1;
for(i=0;i<l && prime[i]<=x/prime[i];i++)
if(x%prime[i]==0)
{
long long aux=x;
int k=0;
while(x%prime[i]==0)
{
k++;
x/=prime[i];
}
aux/=x;
aux*=prime[i];
aux--;
s=(s*(aux/(prime[i]-1)))%9973;
nr*=k+1;
}
if(x>1)
{
s=(s*(x+1))%9973;
nr*=2;
}
printf("%d %d\n",nr,s);
}
return 0;
}