Cod sursa(job #2414693)

Utilizator Rufus007Marincia Catalin Rufus007 Data 24 aprilie 2019 21:57:31
Problema Suma si numarul divizorilor Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
/**
 * @Author: catalin
 * @Date:   24-Apr-2019
 * @Last modified by:   catalin
 * @Last modified time: 24-Apr-2019
 */
#include <cmath>
#include <fstream>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
typedef long long ll;
void ssnd(ll n, ll &suma, ll &numar) {
  if (n == 0)
    suma = numar = 0;
  else
    suma = numar = 1;
  long long d = 2, p = 0;
  while (n > 1) {
    if (n % d == 0) {
      p = 0;
      while (n % d == 0) {
        p++;
        n /= d;
      }
      numar *= (p + 1);
      suma *= (pow(d, p + 1) - 1) / (d - 1);
    }
    d++;
    if (d * d >= n && n > 1)
      d = n;
  }
}
int main() {
  int t;
  ll n;
  fin >> t;
  for (int i = 0; i < t; ++i) {
    fin >> n;
    ll a, b;
    ssnd(n, b, a);
    fout << a << ' ' << b << "\n";
  }
  fin.close();
  fout.close();
  return 0;
}