Cod sursa(job #1411633)

Utilizator raluca1234Tudor Raluca raluca1234 Data 31 martie 2015 20:55:25
Problema Factorial Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<iostream>
#include<fstream>
using namespace std;
int p,n,nrzero,st,dr,poz,m;

int nrzfact(int x) {
    int nr,pow;
    nr=0;
    pow=5;
    while(x/pow>0){
        nr=nr+x/pow;
        pow*=5;
    }
    return nr;
}

int main(){
    ifstream f("fact.in");
    ofstream g("fact.out");
    f>>p;
    if (p==0) { g<<"1"; return 0; }
    st=0;
    dr=500000000;
    poz=-1;
    while (poz==-1 && st<=dr) {
        m=(st+dr)/2;
        nrzero=nrzfact(m);
        //cout<<"m="<<m<<" nrzero="<<nrzero<<'\n';
        if (nrzero==p) poz=m;
        else if (p<nrzero) dr=m-5;
        else st=m+5;
    }
    g<<poz/5*5<<'\n';


    f.close();
    g.close();
    return 0;
}