Cod sursa(job #541885)

Utilizator slilverwolfRadu Ghitescu slilverwolf Data 25 februarie 2011 15:01:23
Problema Factorial Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <fstream>

using namespace std;

inline unsigned long long int zerouri(unsigned long long int n) {
    unsigned int suma=0;
    unsigned long long x;
    x=n;
    while(n) {
        suma+=n%5;
        n/=5;
    }
    return (x-suma)/4;
}

int main() {
    unsigned long long int nr_zerouri,aproximare_n,nr_zerouri_n_factorial;
    bool gasit=false;
    ifstream f("fact.in");
    f>>nr_zerouri;
    f.close();
    ofstream g("fact.out");
    if(nr_zerouri==0) {
        g<<1;
        g.close();
        return 0;
    }
    aproximare_n=aproximare_n*4;
    verifica:
    if(!gasit) {
        nr_zerouri_n_factorial=zerouri(aproximare_n);
        if(nr_zerouri_n_factorial==nr_zerouri) {
            gasit=true;
            g<<aproximare_n;
            g.close();
            return 0;
        }
        else if(nr_zerouri_n_factorial>nr_zerouri){
            gasit=true;
        } else {
            aproximare_n++;
        }
        goto verifica;
    }
    g<<-1;
    g.close();
    return 0;
}