Cod sursa(job #1379128)
Utilizator | Data | 6 martie 2015 16:28:02 | |
---|---|---|---|
Problema | Suma si numarul divizorilor | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.53 kb |
#include <fstream>
using namespace std;
int main(){
int k, n, d, s, j, interp, inters;
ifstream in("ssnd.in");
ofstream out("ssnd.out");
in >> k;
for (int i = 0; i < k; i++){
in >> n;
s = 1;
d = 1;
for (j = 2; j * j <= n; j++){
if (n % j == 0){
interp = 1;
inters = 1;
for (int q = j; n % j == 0; q *= j){
interp++;
inters += q;
n /= j;
}
d *= interp;
s *= inters;
}
}
if (n != 1){
d *= 2;
s *= (1 + n);
}
out << d << ' ' << s << "\n";
}
}