Pagini recente » Cod sursa (job #2610581) | Cod sursa (job #1948124) | Cod sursa (job #1944737) | Cod sursa (job #1727633) | Cod sursa (job #2122380)
#include <iostream>
#include <cmath>
#include <vector>
#include <fstream>
#define ll long long
using namespace std;
ifstream fcin("ssnd.in");
ofstream fcout("ssnd.out");
const ll NLIM = 1e12 + 10;
const int MOD = 9973;
int T;
ll N;
int nprim[1000000 + 10];
vector< int > primes;
void calcSiev()
{
nprim[1] = 1;
for( int i = 2; i <= 1000; ++i )
{
if( !nprim[i] )
{
for( int j = i * i; j < 1000000; j += i )
nprim[j] = 1;
}
}
for( int i = 1; i <= 1000000; ++i )
if( !nprim[i] )
primes.push_back( i );
}
int main()
{
calcSiev();
fcin >> T;
while( T-- )
{
fcin >> N;
// int gy = sqrt( N );
int gy = N;
int nr = 1;
ll sum = 1;
for( int i = 0; i < primes.size() && primes[i] <= gy; ++i )
{
//cout << i << "\n";
// primes[i];
int a = 0;
ll pored = 1;
ll hsum = 1;
while( N % primes[i] == 0 )
{
a++;
N /= primes[i];
pored *= primes[i];
hsum += pored;
hsum %= MOD;
}
// cout << primes[i] << " " << a << "\n";
nr *= a + 1;
sum *= hsum;
sum %= MOD;
}
if( nr == 1 )
{
nr = 2;
sum = N + 1;
}
fcout << nr << " " << sum << "\n";
}
}