Cod sursa(job #2609980)

Utilizator Zamfirescuste2Zamfirescu Stefan Zamfirescuste2 Data 3 mai 2020 22:08:06
Problema Factorial Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <iostream>
#include <fstream>

using namespace std;

int apartii_de_5 ( int n ){
    int coeficient = 5;
    int cnt = 0;
    while (n / coeficient){
        cnt += n / coeficient;
        coeficient *= 5;
    }
    return cnt;
}
int main(){

    ifstream f("fact.in");
    ofstream g("fact.out");
    int p;
    f >> p;
    int cnt = 0;
    if ( p == 0 )
        g << 1 << "\n";
    else{
        int st = 0;
        int dr = p * 5;
        int mid;

        while (st <= dr){
            mid = (st + dr) / 2;

            if(apartii_de_5(mid) > p )
                dr = mid - 1;
            else
                if ( apartii_de_5(mid) < p )
                    st = mid + 1;
                else
                    if ( apartii_de_5(mid) == p && apartii_de_5(mid -1 ) < p)
                        break;
                    else
                        dr = mid - 1;
        }
        g << mid;
    }
    return 0;
}