Pagini recente » Rating Eliza Toma (eliza007) | Cod sursa (job #432515) | Cod sursa (job #1976858) | Cod sursa (job #1841057) | Cod sursa (job #872142)
Cod sursa(job #872142)
#include<stdio.h>
#include<math.h>
#define MOD 9973
long long t , v [ 100007 ] , put [ 100007 ] , n;
void desc ( long long n )
{
int d , nr = 0;
while ( n%2 == 0)
n /= 2 , ++nr;
if(nr != 0 )
{
v [ ++ v [ 0 ] ] = 2;
put [ ++put [ 0 ] ] = nr;
}
d = 3 ;
while ( d<=(int) sqrt ( n ) && n!=1 )
{
nr = 0;
while ( n%d == 0)
n /= d , ++nr;
if( nr != 0 )
{
v [ ++ v [ 0 ] ] = d ;
put [ ++ put [ 0 ] ] = nr ;
}
d += 2;
}
if( n!= 1 )
{
v [ ++ v [ 0 ] ] = n ;
put [ ++ put [ 0 ] ] = 1 ;
}
}
int main ( )
{
long long nrdiv , prod , prod2 , s ;
freopen ( "ssnd.in" , "r" , stdin ) ;
freopen ( "ssnd.out" , "w" , stdout ) ;
scanf ( "%lld" , &t ) ;
for ( int i=1 ; i<=t ; ++i )
{
scanf( "%lld" , &n );
v [ 0 ] = put [ 0 ] = 0 ;
desc ( n ) ;
nrdiv = 1;
prod2 = 1;
for( int i=1 ; i<=v [ 0 ] ; ++i )
{
prod = 1 ;
nrdiv = nrdiv * (put [ i ] + 1);
s = 0 ;
for ( int j=0 ; j<= put [ i ] ; ++j )
{
s = (s + prod) % MOD ;
prod *= v [ i ] ;
}
prod2 = (prod2 * s) % MOD ;
}
printf("%lld %lld\n" , nrdiv , prod2);
}
return 0 ;
}