Pagini recente » Cod sursa (job #1275073) | Cod sursa (job #1892064) | Cod sursa (job #848991) | Cod sursa (job #542695) | Cod sursa (job #2719929)
// Mihai Priboi
#include <bits/stdc++.h>
#define MAXD 1000000
#define MOD 9973
using namespace std;
ifstream fin ( "ssnd.in" );
ofstream fout ( "ssnd.out" );
int ciur[MAXD + 1];
int main() {
int t, i, d, k, div, p;
long long sum_div, sum, x, diviz, n;
for( d = 2; d * d <= MAXD; d++ )
if( ciur[d] == 0 )
for( i = d * d; i <= MAXD; i += d )
ciur[i] = 1;
k = 0;
for( i = 2; i <= MAXD; i++ )
if( ciur[i] == 0 )
ciur[k++] = i;
fin >> t;
for( k = 0; k < t; k++ ) {
fin >> n;
d = 0;
diviz = ciur[d];
sum_div = 1;
div = 1;
while( diviz * diviz <= n ) {
p = 0;
x = diviz;
sum = 1;
while( n % diviz == 0 ) {
p++;
sum += x;
x *= diviz;
n /= diviz;
}
sum_div *= sum;
sum_div %= MOD;
div *= p + 1;
d++;
diviz = ciur[d];
}
if( n > 1 ) {
sum_div *= n + 1;
sum_div %= MOD;
div *= 2;
}
fout << div << ' ' << sum_div << '\n';
}
return 0;
}