Pagini recente » Cod sursa (job #1973301) | Cod sursa (job #405626) | Cod sursa (job #423490) | Cod sursa (job #2442125) | Cod sursa (job #3159561)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("ssnd.in");
ofstream cout("ssnd.out");
int mod = 9973;
bool compus[1000005];
vector<int> prime;
void buildPrime(){
compus[0] = true, compus[1] = true;
for (int i = 2; i <= 1000000; i++)
if(compus[i] == false){
prime.push_back(i);
for (int j = 2*i; j <= 1000000; j += i)
compus[j] = true;
}
}
void ssnd (long long n){
int nrd = 1;
long long suma = 1;
int i = 0;
while (prime[i] * prime[i] <= n){
if(n % prime[i] == 0){
int p = 0;
long long factor = 1;
while (n % prime[i] == 0){
p++;
factor *= prime[i];
n /= prime[i];
}
nrd *= (p+1);
factor *= prime[i];
suma *= (factor - 1)/(prime[i] - 1);
}
i++;
}
if(n != 1){
nrd *= 2;
suma *= (n+1); //(n^2-1)/(n-1) = n+1
}
cout << nrd % mod << ' ' << suma % mod << '\n';
}
int main(){
buildPrime();
int t;
cin>>t;
for ( ; t; --t){
long long n;
cin>>n;
ssnd(n);
}
}