Pagini recente » Cod sursa (job #2181363) | Cod sursa (job #2305074) | Cod sursa (job #2294386) | Cod sursa (job #822086) | Cod sursa (job #1101320)
#include <cstdio>
#define ll long long
#define mod 9973
#define Nmx 1000000
using namespace std;
unsigned ll n,j,i,sum,prod,x,cx,t;
bool ok[1000005];
int prime[100005];
int max(int a,int b)
{
if (a>b) return a;
return b;
}
ll pow(ll a,int x)
{
ll p=1,i;
for (i=1;i<=x;i++) p*=a;
return p;
}
ll calcul(ll a,int x)
{
return ((pow(a,x)-1)/(a-1));
}
int main()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
scanf("%lld",&n);
for (i=2;i<=Nmx;i++)
if (!ok[i])
{
prime[++prime[0]]=i;
for (j=2*i;j<=Nmx;j+=i) ok[j]=true;
}
for (i=1;i<=n;i++)
{
scanf("%lld",&x);
prod=1;sum=1;cx=x;j=1;
while (cx>0 && cx>=prime[max(j-2000,1)]*prime[max(j-2000,1)])
{
t=0;
while (cx%prime[j]==0)
cx/=prime[j],t++;
if (t>0) sum=((sum%mod)*calcul(prime[j],t+1))%mod,prod=prod*(t+1);
j++;
}
if (cx>1)
prod*=2,sum=((sum%mod)*((cx*cx-1)/(cx-1)))%mod;
printf("%lld %lld\n",prod,sum);
}
return 0;
}