Cod sursa(job #2509134)

Utilizator euyoTukanul euyo Data 13 decembrie 2019 20:47:21
Problema Suma si numarul divizorilor Scor 70
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <stdio.h>
#define MOD 9973


int main() {
  FILE *fin = fopen( "ssnd.in", "r" );
  FILE *fout = fopen( "ssnd.out", "w" );
  int q, i, exp;
  long long S, p, nrd, d, n;

  fscanf( fin, "%d", &q );
  for ( i = 0; i < q; ++i ) {
    fscanf( fin, "%lld", &n );
    nrd = 1;
    S = 1;
    d = 2;
    exp = 0;
    while ( d * d <= n ) {
      p = 1;
      exp = 0;
      while ( n % d == 0 ) {
        p *= d;
        ++exp;
        n /= d;
      }
      S = (S * ((p * d - 1) / (d - 1))) % MOD;
      nrd *= (exp + 1);
      ++d;
    }
    if ( n > 1 ) {
      nrd *= 2;
      S = (S * ((n * n - 1) / (n - 1))) % MOD;
    }
    fprintf( fout, "%lld %lld\n", nrd, S );
  }
  fclose( fin );
  fclose( fout );
  return 0;
}