Cod sursa(job #1893017)

Utilizator ioana_meirosuMeirosu Ioana-Cristina ioana_meirosu Data 25 februarie 2017 14:03:39
Problema Factorial Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <iostream>
#include <fstream>

using namespace std;

int main() {

    ifstream inputFile;
    ofstream outputFile;
    long p, power, auxiliar;
    long n;
    int difference = 0;

    inputFile.open("fact.in",ios::in);

    if(!inputFile.is_open())
    {
        cout<<"Eroare la deschiderea fisierului de input\n";
        return -1;
    }

    inputFile>>p;

    /*
     * Pentru a determina numarul n al carui factorial are exact p zerouri vom determina
     * cate cifre de 5 ne furnizeaza numarul n, intrucat combinatia 2*5 ne va oferi o cifra
     * de 0.
     */

    n = p * 5;

    /*
     * determinam cea mai mare putere a lui 5 cuprinsa in n.
     */
    auxiliar = n;
    power = 1;

    while(auxiliar / 5 != 0)
    {
        auxiliar/=5;
        power*=5;
    }

    while(power != 5)
    {
        difference=difference + (n/power)*5;
        power/=5;
    }

    outputFile.open("fact.out",ios::out);
    if(outputFile.is_open()) {
        outputFile << n - difference << "\n";
    }
    else
    {
        cout<<"Eroare la deschiderea fisierului de output!";
        return -1;
    }

    inputFile.close();
    outputFile.close();

}