Cod sursa(job #732056)

Utilizator JercaianuJercaianu Alexandru Jercaianu Data 9 aprilie 2012 16:59:59
Problema Factorial Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<iostream>
#include<fstream>
using namespace std;

ifstream f("fact.in");
ofstream g("fact.out");


unsigned int putere(unsigned int n, unsigned int p)
{
    if (n==0) return 1;
    else return putere(n-1,p)*p;
}
    
unsigned int Zero(unsigned int n)
{
    int S=0 ,i;
    for (i=1; i<=n; i++)
        S=S+n/putere(i,5);
    return S;
}
    

unsigned int cautare (unsigned int st,unsigned int dr,unsigned int p)
{
    int mij=(st+dr)/2;
    if (Zero(mij)==Zero(p)) return mij;
    if (dr==st) return st;
    if (Zero(mij)>p)
       return cautare(st, mij, p);
    else return cautare(mij+1, dr, p);
}


int main()
{
    unsigned int P, m;
    do{
    f>>P;} while (P<0 && P>putere(8,10));
    m=cautare(4*P,5*P,P);
    do
    {
     m=m-1;
    }
    while (Zero(m)==Zero(P));
    g<<m-4;
    
    f.close();
    g.close();
}