Cod sursa(job #1070906)

Utilizator Catalina_BrinzaBrinza Catalina Catalina_Brinza Data 2 ianuarie 2014 12:15:30
Problema Factorial Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
//
//  main.cpp
//  factorial
//
//  Created by Catalina Brinza on 11/30/13.
//  Copyright (c) 2013 Catalina Brinza. All rights reserved.
//


#include <fstream>
#define nru 100000000
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
int p;
int cautare(int a,int b)
{int m,nr=0;
    if (a>b) return -1;
    m=a+(b-a)/2;
    int k=5;
    int q=m/5;
    while (q>0)
    {
        nr+=q;
        k=k*5;
        q=m/k;
        if (nr>p) break;
    }
 
    if (nr==p)
    {
        m-=m%5;
         int k=5;
        int q=m/5;
        while (q>0)
        {
            nr+=q;
            k=k*5;
            q=m/k;
            if (nr>p) break;
        }
        if (nr==p) return m;
        else return m+1;
    }
    else if (nr>p)
    
        return cautare(a,m-1);
    else return cautare(m+1,b);
}


int main()
{
    in>>p;
    out<<cautare(5,nru);
    return 0;
}