Pagini recente » Cod sursa (job #1097323) | Istoria paginii propuneri/6-arhiva-educationala | Cod sursa (job #1727689) | Cod sursa (job #1911278) | Cod sursa (job #2122377)
#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 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;
}
nr *= a + 1;
sum *= hsum;
sum %= MOD;
}
if( nr == 1 )
{
nr = 2;
sum = N + 1;
}
fcout << nr << " " << sum << "\n";
}
}