Cod sursa(job #2429918)

Utilizator BogBBogdan BogB Data 11 iunie 2019 20:43:34
Problema Factorial Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <cmath>

uint64_t factorial(int N, int * k){
    if(N > 1){
        if(N % 5 == 0){
            *k = *k + 1;
        }
        if(N % 25 == 0){
            *k = *k + 1;
        }
        return N * factorial(N - 1, k);
    } else {
        return 1;
    }
}



int main() {
    int P, k = 0, c = 1;
    FILE * fisier_out = fopen("fact.out", "w");
    FILE * fisier_in = fopen("fact.in", "r");
    fscanf(fisier_in, "%d", &P);

    if((P+1) % 6 == 0){
        fprintf(fisier_out, "%d", -1);
        return 0;
    }
    while(1){
        k = 0;
        factorial(c, &k);
        if(k == P){
            fprintf(fisier_out, "%d", c);
            break;
        }
        c = c + 1;
    }
    fclose(fisier_in);
    fclose(fisier_out);
    return 0;
}