Cod sursa(job #2661243)

Utilizator cristi_macoveiMacovei Cristian cristi_macovei Data 21 octombrie 2020 17:16:26
Problema Suma si numarul divizorilor Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#include <iostream>
#include <fstream>
#include <cmath>

const int MOD = 9973;

int main() {
  std::ifstream in("ssnd.in");
  std::ofstream out("ssnd.out");
  int64_t n, a;
  int64_t div, exp, num, sum;

  in >> n;
  while (in >> a) {
    div = num = sum = 1;

    while (a != 1) {
      ++ div;
      exp = 0;
      if (div * div > a)
        div = a;
      while (a % div == 0) {
        a /= div;
        ++ exp;
      }
      num = (num * (exp + 1)) % MOD;
      sum = (sum * ((int64_t)pow(div, exp + 1) - 1) / (div - 1)) % MOD;
      if (div > 2)
        ++ div;
    }

    out << num << ' ' << sum << '\n';
  }
  return 0;
}