Cod sursa(job #2420281)

Utilizator TeodorLuchianovTeo Luchianov TeodorLuchianov Data 11 mai 2019 13:56:13
Problema Suma si numarul divizorilor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>

using namespace std;

ifstream in("ssnd.in");
ofstream out("ssnd.in");

int const modulo = 9973;

void solve(long long n){
  int ans, sum, fact;
  ans = sum = 1;
  while(n % 2 == 0){
    n /= 2;
    ans++;
    sum = (sum * 2) + 1 % modulo;
  }
  for(int i = 3;1LL * i * i <= n;i+=2){
    fact = 1;
    while(n % i == 0){
      n /= i;
      fact++;
      sum = (sum * (i % modulo)) % modulo;
    }
    ans *= fact;
  }
  if(n != 1){
    ans *= 2;
    sum = (sum * (n % modulo)) % modulo;
  }
  out << ans << ' '<<sum<<'\n';
}

int main()
{
    int p;
    long long n;
    in >> p;
    for(int i = 1;i <= p;i++){
      in >> n;
      solve(n);
    }
    return 0;
}