Pagini recente » Cod sursa (job #882620) | Cod sursa (job #462168) | Cod sursa (job #2285094) | Cod sursa (job #2749567) | Cod sursa (job #781622)
Cod sursa(job #781622)
#include <cstdio>
#include <cstring>
#define Max 1000001
#define Mod 9973
int pr[80000],np;
void ciur(){
bool p[Max];
int i = 2;
memset(p,0,sizeof(p));
while( i <= 1000 )
{
while(p[i])i++;
for(int j = i * i;j < Max;j += i)p[j] = 1;
i++;
}
for(i = 2;i < Max;i++)
if( !p[i] )pr[++np] = i;
}
void desc(long long x){
int nr = 1, d , i = 1;
long long p, s = 1;
while( pr[i] * pr[i] <= x )
{
if(x % pr[i] == 0)
{
d = 0;
p = 1;
while(x % pr[i] == 0)
{
d++;
p *= pr[i];
x /= pr[i];
}
nr *= d+1;
s = (s * ((p*pr[i]-1)/(pr[i]-1))) % Mod;
}
i++;
}
if(x != 1)
{
nr *= 2;
s = (s * ((x*x - 1)/(x-1))) % Mod;
}
printf("%d %lld\n",nr,s);
}
int main(){
int t;
long long n;
ciur();
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
scanf("%d",&t);
while(t--)
{
scanf("%lld",&n);
desc(n);
}
return 0;
}