Cod sursa(job #901103)

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

long int p, k1, k2, mij, zero, ok=1;

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); ok=0; break;} }
        mij=(k1+k2)/2;
    }
    if(ok==1){fprintf(g,"-1");}

return 0;
}