Cod sursa(job #732025)

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

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


unsigned int putere(int n, int p)
{
    if (n==0) return 1;
    else return putere(n-1,p)*p;
}
    
unsigned int Zero(int n)
{
    return ((putere(n, 5)-1)*n)/(4*putere(n,5));
}
    

int cautare(int st,int dr,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()
{
    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();
}