Cod sursa(job #2626816)

Utilizator etohirseCristi Cretu etohirse Data 8 iunie 2020 14:28:16
Problema Suma si numarul divizorilor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define ull unsigned long long
#define vi vector<int>
#define test int t; cin>>t; while(t--)
#define yn cout<<"YES\n"
#define nn cout<<"NO\n"
#define nl cout<<"\n"
#define fisier 1
const double PI=3.14159265359;
const int MOD = 1e9 + 7;
const int NMAX = 1e5;
ull n;
void solve(){
    cin >> n;
    ull d = 2, p, sd = 1, nrd = 1, cnt;
    while (n > 1){
        p = 1, cnt = 0;
        while (n % d == 0){
            n /= d;
            p *= d;
            cnt++;
        }
        if (cnt > 0) sd *= (p * d - 1) / (d - 1), nrd *= (cnt + 1);
        d++;
    }
    cout << nrd << " " << sd, nl;
}
int32_t main(){
	#ifdef fisier
        ifstream cin("ssnd.in");
        ofstream cout("ssnd.out");
    #endif

	ios_base::sync_with_stdio(false);
	cin.tie(NULL); cout.tie(NULL);
	
	test {
		solve();
	}
}