Cod sursa(job #2691351)

Utilizator Paul281881818818181991919191881818Draghici Paul Paul281881818818181991919191881818 Data 28 decembrie 2020 13:17:46
Problema Factorial Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
// Example program
#include <fstream>
#include<algorithm>
#define NMAX 100000005
using namespace std;
ifstream cin("fact.in");
ofstream cout("fact.out");
int nrz(int n){
    int rez=0;
    for(int i=5;i<=n;i*=5){
        rez+=(n/i);
        }
    return rez;
    }
int main()
{
    int p,st=0,dr=NMAX,mij;
    cin>>p;
    if(p==0){cout<<1;return 0;}
    while(dr-st>1){
         mij=(st+dr)/2;
        if(nrz(mij)==p){
            if(!(mij%5)){cout<<mij;}
            else{cout<<mij-(mij%5);}
            return 0;
            }
        if(nrz(mij) <p){
            st=mij;
            }
        if(nrz(mij) >p){
            dr=mij;
            }
        }
    if(nrz(st)==p ){cout<<mij;}
    else cout<<-1;
    return 0;
}