Pagini recente » Cod sursa (job #2271560) | Cod sursa (job #2779765) | Cod sursa (job #3286) | Cod sursa (job #1682965) | Cod sursa (job #764491)
Cod sursa(job #764491)
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define mod 9973
bool a[1000001];
long long int p[500001],k=0;
using namespace std;
void ciur()
{
for(int i=2;i<=1000001;i++)
if(a[i]==false)
{
p[++k]=i;
for(int j=i+i;j<=1000001;j+=i)
a[j]=true;
}
}
long long int putere(int baza, int exp)
{
long long int rez=1;
while(exp)
{
if(exp%2)
rez*=baza;
baza*=baza;
exp/=2;
}
return rez;
}
int main()
{
long long int t,x,s,nr,d;
ciur();
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
scanf("%lld", &t);
while(t--)
{
s=nr=1;
scanf("%lld",&x);
for(int i=1;i<=k && p[i]*p[i]<=x;i++)
if(x%p[i]==0)
{
d=0;
while(x%p[i]==0)
{
d++;
x=x/p[i];
}
nr=nr*(d+1);
s=s*((putere(p[i],d+1)-1)/(p[i]-1))%mod;
}
if(x>1)
{
nr=nr*2;
s=s*(x+1)%mod;
}
printf("%lld %lld\n",nr,s);
}
return 0;
}