Cod sursa(job #1925559)

Utilizator waren4Marius Radu waren4 Data 13 martie 2017 13:26:28
Problema Factorial Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream f("fact.in"); ofstream g("fact.out");
int n,p,m,st,dr; int a[15];

int nr0(int y)
{
    int i,x;
    x=0;
    for(i=1;i<=14;i++) x+=y/a[i];
    return x;
}

int main()
{
    f>>p;
    a[1]=5;
    for(n=2;n<=14;n++)
    {
        a[n]=a[n-1]*5;
    }
    m=-1;
    st=1;
    dr=100000003;
    while(st<=dr)
    {
        int x;
        n=(st+dr)/2;
        x=nr0(n);
        if (x==p)
        {
            if (m>n || m==-1) {m=n; dr=n-1;}
             else break;
        }
        if (x<p)
        {
            st=n+1;
        }
        if (x>p)
        {
            dr=n-1;
        }
    }
    n=m;
    g<<n;
    return 0;
}