Cod sursa(job #901097)

Utilizator rughibemBelcineanu Alexandru Ioan rughibem Data 1 martie 2013 00:17:15
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<stdio.h>
FILE *f=fopen("factorial.in","r"), *g=fopen("factorial.out","w");

long int p, k1, k2, mij, zero;

long int putere5(long int nr){
long int nr5=0, imp;
    imp=5;
    while(imp<=nr){
        nr5 += (nr/imp);
        imp*=5;
    }
    return nr5;
}

int main(){

    fscanf(f,"%ld",&p);
    k1=1; k2=500000000; mij=(k1+k2)/2;
    while(k1<=k2){
        zero=putere5(mij);
        if(p<zero){k2=mij-1;}
        else if(p>zero){k1=mij+1;}
        else{ k2=mij; if(k1==k2){fprintf(g,"%ld",k1); return 0;} }
        mij=(k1+k2)/2;
    }
    fprintf(g,"-1");

return 0;
}