Cod sursa(job #2456770)

Utilizator Diana-ElenaStancu Diana-Elena Diana-Elena Data 15 septembrie 2019 14:11:01
Problema Suma si numarul divizorilor Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb

#include <bits/stdc++.h>
#define X 1000003
#define NR 9973
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
int main()
{
  int t, v[80000], k; long long int n, s, d, nd, sd, i, j, p;
  vector <bool>A(X + 3, 1);k = 0;
for(i = 4; i <= X; i += 2)
  A[i] = 0;
for(i = 3; i <= X; i += 2)
{
  if(A[i] == 1)
  {
    v[++k] = i;
    for(j = 2; j <= X/i; ++j)
      A[i * j] = 0;
  }
}
cout << 234;
fin >> t;
while(t--)
{
  fin >> n;
  sd = nd = 1;
  for(i = 2; n != 1; ++i)
  {
    int d = 0;
    p = 1;
    if(A[i] == 1)
    {
      if(n%i == 0)
      {
        while(n%i == 0)
        {
          n /= i;
          p *= i;
          ++d;
        }
        p *= i;
        nd = nd * (d + 1);
        sd = (sd*((p - 1)/(i - 1)))%NR;
      }
    }
  }
  fout << nd << ' ' << sd<< '\n';
}
return 0;
}