Cod sursa(job #2256126)

Utilizator dobreraduDobre Radu Fabian dobreradu Data 7 octombrie 2018 23:50:16
Problema Suma si numarul divizorilor Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <stdio.h>

int main() {
  FILE *fin, *fout;
  long long  n,div,suma,x;
  int  t,i,nrdiv,p;
  fin=fopen("ssnd.in","r" );
  fout=fopen("ssnd.out","w");
  fscanf(fin,"%d",&t);
  for(i=1;i<=t;i++){
    fscanf(fin,"%lld",&n);
    div=2;
    nrdiv=1;
    suma=1;
    while ( div * div <= n ) {
      x=1; p=0;
      while(n%div==0){
        p++; x*=div;
        n/=div;
      }
      if(p>0){
        x=(x*div-1)/(div-1);
        suma*=x;
        nrdiv*=(p+1);
      }
      div++;
    }
    if ( n > 1 ){
      x=(n*n-1)/(n-1);
      suma*=x;
      nrdiv*=2;
    }
    suma%=9973;
    fprintf(fout,"%d %lld\n",nrdiv,suma);
  }
  fclose(fin);
  fclose(fout);
    return 0;
}