Cod sursa(job #1695341)

Utilizator valentina_veleatVeleat Valentina-Georgiana valentina_veleat Data 26 aprilie 2016 22:28:45
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <cstdio>

using namespace std;
int p;
int verif (int x){
    int sp5=0;
    long long p5=5;
    while (p5<=x){
        sp5+=x/p5;
        p5*=5;
    }
    if (sp5>p)
        return 0;
    if (sp5<p) return 1;
    return 2;
}
int main()
{
    FILE *fin=fopen ("fact.in","r");
    FILE *fout=fopen ("fact.out","w");
    int st,dr,mid;
    fscanf (fin,"%d",&p);
    st=1;
    dr=2000000000;
    int stg=0;
    if (p==0){
        fprintf (fout,"1");
        return 0;
    }
    while (st<=dr && stg==0){
        mid=(st+dr)/2;
        if (verif(mid)==1)
            st=mid+1;
        else if (verif(mid)==0)
            dr=mid-1;
        else {
                mid=mid-mid%5;
                fprintf (fout,"%d",mid);
                stg=1;
                break;
        }
    }
    if (st>dr && stg==0)
        fprintf (fout,"-1");
    return 0;
}