Pagini recente » Cod sursa (job #1215250) | Cod sursa (job #3199032) | Cod sursa (job #344890) | Cod sursa (job #582768) | Cod sursa (job #767453)
Cod sursa(job #767453)
#include <cstdio>
#include <cstring>
#define MAX 1000001
#define MOD 9973
int pr[80000],nr;
void ciur(){
bool p[MAX];
int i = 2;
while( i <= 1000 )
{
while( p[i] )i++;
for(int j=i*i;j<MAX;j+=i) p[j] = 1;
i++;
}
for(int i=2;i<MAX;i++)
if( !p[i] )pr[++nr] = i;
// printf("%d\n",nr);
}
void desc(long long n){
long long sum = 1, p;
int nr = 1, d,i = 1;
while( i <= nr && n != 1 && pr[i] * pr[i] <= n )
{
if( n % pr[i] == 0)
{
d = 0;
p = pr[i];
while( n%pr[i] == 0)
{
d++;
p *= pr[i];
n /= pr[i];
}
nr *= (d+1);
sum = (sum * (( p - 1 ) / (pr[i] - 1))%MOD;
}
i++;
}
if( n != 1)
{
nr *= 2;
sum *= (n*n - 1) / ( n - 1);
}
printf("%d %lld\n",nr,sum%MOD);
}
int main(){
long long n;
int t;
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
ciur();
scanf("%d",&t);
while(t--)
{
scanf("%lld",&n);
desc(n);
}
return 0;
}