Nu aveti permisiuni pentru a descarca fisierul grader_test2.ok
Cod sursa(job #3213595)
| Utilizator | Data | 13 martie 2024 12:03:42 | |
|---|---|---|---|
| Problema | Suma si numarul divizorilor | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.91 kb |
#include <iostream>
#include <fstream>
#include <queue>
using namespace std;
#define MOD 9973
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
int k, s;
void descompunere(int x) {
int d = 2;
k = 1, s = 1;
while (x != 1) {
if (d*d > x) break;
if (x % d == 0) {
int p = 0;
int prod = 1, sum = 1;
while (x % d == 0) {
prod *= d;
prod %= MOD;
sum += prod;
if (sum > MOD) sum -= MOD;
p++;
x /= d;
}
if (p != 0) {
k *= (p + 1);
k %= MOD;
s *= sum;
s %= MOD;
}
}
d++;
}
}
int main() {
int n, x;
fin>>n;
for (int i = 1; i <= n; i++) {
fin>>x;
descompunere(x);
fout<<k<<" "<<s<<endl;
}
return 0;
}