Pagini recente » Cod sursa (job #1001788) | Cod sursa (job #179773) | Cod sursa (job #1816297) | Cod sursa (job #860685) | Cod sursa (job #2461012)
#include <fstream>
#include <cmath>
using namespace std;
ifstream cin("ssnd.in");
ofstream cout("ssnd.out");
//generam ciurul
//aflam nr de divizori si suma acestora
/*
void divizori(unsigned long long n, int& rez, int& suma) {
int p;
for (int d = 0; prime[d] != 0 && n > 1; ++d) {
p = 0;
while (n % prime[d] == 0) {
++p;
n /= prime[d];
}
if (p) {
rez *= p + 1;
suma *= (pow(prime[d], p + 1) - 1) / (prime[d] - 1);
suma %= 9973;
}
}
//if (rez == 2)
//++suma;
}
*/
void divizori(unsigned long long n, int& rez, int& suma) {
for (int d = 1; d * d <= n; ++d)
if (n % d == 0) {
rez += 2;
suma += d;
suma += n / d;
}
}
int main() {
int t;
unsigned long long n;
cin >> t;
for (int i = 0; i < t; ++i) {
cin >> n;
int suma = 0;
int rez = 0;
divizori(n, rez, suma);
cout << rez << " " << suma % 9973 << "\n";
}
return 0;
}