Cod sursa(job #129564)

Utilizator bogdanhm999Casu-Pop Bogdan bogdanhm999 Data 29 ianuarie 2008 18:40:18
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <stdio.h>

long p,low,mid,high,p5,nr0;

int main(){
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    
    scanf("%ld",&p);
    
    low=1;
    high=2000000000;
    while (low<high){
          mid = (low + high)/2;
          p5=5;nr0=0;
          while (p5<mid){
                nr0+=mid/p5;
                p5*=5;
          }
          if (nr0 < p){
               low = mid + 1;
          }
          else
              high = mid; 
    }
    
    p5=5;nr0=0;
    while (p5<low){
          nr0+=low/p5;
          p5*=5;
    }
    while (low%5)low--;
    if (low <2000000000 && nr0==p)
       printf("%ld\n",low);
    else printf("-1\n");

return 0;
}