Pagini recente » Cod sursa (job #1744413) | Cod sursa (job #1123711) | Cod sursa (job #244255) | Cod sursa (job #522802) | Cod sursa (job #1059381)
#include <cstdio>
#define REST 9973
#define MILION 1000001
bool ciur[MILION];
int nprime[500001], nr;
void ciur_vector( ) {
int p = 1001;
for( int i = 3 ; i <= p ; ++i )
for( int j = i * i ; j <= MILION ; j += 2 * i )
ciur[j] = 1;
for( int i = 2 ; i <= MILION ; ++i )
if( ciur[i] == 0 )
nprime[nr++] = i;
}
int main () {
FILE *f, *g;
f = fopen( "ssnd.in", "r" );
g = fopen( "ssnd.out", "w" );
int t, put, d;
long long n, nrd, sd, numar;
fscanf( f, "%d" , &t );
ciur_vector();
for( int z = 0 ; z < t ; ++z ) {
fscanf( f, "%lld", &n );
nrd = 1;
sd = 1;
d = 0;
numar = 1;
while( nprime[d] * nprime[d] <= n ) {
put = 0;
while( n % nprime[d] == 0 ) {
++put;
numar *= nprime[d];
n /= nprime[d];
}
if( put ) {
nrd = ( nrd * ( put + 1 ) ) % REST;
sd = ( sd *( ( numar * nprime[d] - 1 ) / ( nprime[d] - 1 ) ) ) % REST; //numar: nprime[d]^a ; put:a nprime[d] : p
}
++d;
}
if( n > 1 ) {
nrd *= 2;
nrd %= REST;
sd *= ( ( n * n - 1 ) / ( n - 1 ) );
sd %= REST;
}
fprintf( g, "%lld %lld\n", nrd, sd );
}
fclose( f );
fclose( g );
return 0;
}