Cod sursa(job #2377836)

Utilizator Mihai.MocanuMihai mmm Mihai.Mocanu Data 11 martie 2019 11:18:37
Problema GFact Scor 15
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <stdio.h>
#include <stdlib.h>

int main(){
  unsigned long long p,q,n,s,mi,d,sn;
  FILE *fin,*fout;
  fin=fopen("gfact.in","r");
  fout=fopen("gfact.out","w");
  fscanf(fin,"%lld%lld",&p,&q);

  if(q==1){
    fprintf(fout,"%lld",p);
  }else{
    mi=100000000;
    d=2;
    while(d*d<=p){
      if(p%d==0){
        n=p;
        s=0;
        while(s<q){
          s=0;
          sn=n;
          while(n>0){
            s+=n/p;
            n/=p;
          }
          n=sn;
          n++;
        }
        if(n-1<mi){
          mi=n-1;
        }
      }
      d++;
    }
    n=p;
    s=0;
    d=p;
    while(s<q){
      s=0;
      sn=n;
      while(n>0){
        s+=n/p;
        n/=p;
      }
      n=sn;
      n++;
    }
    if(n-1<mi){
      mi=n-1;
    }
    fprintf(fout,"%lld",mi);
  }

  fclose(fin);
  fclose(fout);
  return 0;
}