Cod sursa(job #1695068)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 26 aprilie 2016 15:27:54
Problema Factorial Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <cstdio>

using namespace std;
int p;
int verif (int x){
    int sp5=0,n;
    //if (x==15)
      //  printf ("a");
    for (int i=5;i<=x;i+=5){
        n=i;
        while (n>0 && n%5==0){
            sp5++;
            n/=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=1000000;
    int stg=0;
    while (st<=dr && stg==0){
        mid=(st+dr)/2;
        //printf ("%d ",verif(mid));
        if (verif(mid)==1)
            st=mid+1;
        else if (verif(mid)==0)
            dr=mid-1;
        else {
                stg=1;
                break;
        }
    }
    if (st<=dr || stg==1)
        fprintf (fout,"%d",mid-mid%5);
    else fprintf (fout,"-1");
    return 0;
}