Pagini recente » Cod sursa (job #1470976) | Cod sursa (job #2164558) | Cod sursa (job #2432030) | Cod sursa (job #90632) | Cod sursa (job #3237698)
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ifstream fin( "ssnd.in" );
ofstream fout( "ssnd.out" );
const int DIM = 1e6 + 1;
bool ciur[DIM];
int pr[DIM];
int main() {
ios_base::sync_with_stdio(0);
fin.tie(0);
int t, idx = 0;
ll n;
fin >> t;
for ( int d = 2; d * d < DIM; ++d ) {
if ( !ciur[d] ) {
pr[++idx] = d;
for ( int i = d * d; i < DIM; i += d ) {
ciur[i] = 1;
}
}
}
pr[++idx] = DIM;
while ( t-- ) {
fin >> n;
int i = 1;
ll s = 1, d = 1;
while ( pr[i] * pr[i] <= n ) {
int e = 0;
ll p = 1;
while ( n % pr[i] == 0 ) {
n /= pr[i];
p *= pr[i];
++e;
}
d *= (e + 1);
s *= (p * pr[i] - 1) / (pr[i] - 1);
++i;
}
if ( n > 1 ) {
d *= 2;
s *= (n + 1);
}
fout << d << " " << s << "\n";
}
fin.close();
fout.close();
return 0;
}