Cod sursa(job #731358)

Utilizator mirceadinoMircea Popoveniuc mirceadino Data 7 aprilie 2012 22:16:32
Problema Factorial Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<cstdio>
using namespace std;
int f(int n)
{
    int ok=0;
    for(;n!=0;)
    {
        ok+=n/5;
        n/=5;
    }
    return ok;
}
int check(int a,int b,int p)
{
    if(a>b) return -1;
    int c=(a+b)/2;
    int q=f(c);
    if(q==p) return c;
    if(q<p) return check(c+1,b,p);
    else return check(a,c-1,p);
}
int main()
{
    int p,n;
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    scanf("%d",&p);
    if(p==0) {printf("1"); return 0;}
    n=check(0,1<<15-1,p);
    if(n==-1) {printf("-1"); return 0;}
    n=n-n%5; printf("%d",n);
    return 0;
}