Cod sursa(job #2346725)

Utilizator ra2u18Riccardo Andronache ra2u18 Data 18 februarie 2019 00:55:48
Problema Factorial Scor 15
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <cstdio>
#include <stdlib.h>
using namespace std;

FILE *in_file = fopen("fact.in", "r");
FILE *out_file = fopen("fact.out", "w");

short int findTrailingZeros(int n){

    int counter = 0;
    for(int i = 5; n/i >= 1; i *= 5 )
        counter += n/i;
    return counter;
}

int main()
{
    unsigned long int p; // range ( 0 -> 4.000.000 )
    short int power;
    int j = 10, k;

    fscanf(in_file, "%lu", &p);

    if( p == 0 )
        fprintf(out_file, "0");
    else if( p == 1 )
        fprintf(out_file, "10");
    else
        while(true){
            k = findTrailingZeros(j);
            if( k == p ){
                fprintf(out_file, "%d", j);
                break;
            }
            else if( k > p ){
                fprintf(out_file, "%d", -1);
                break;
            }
            j += 5;
        }
    return 0;
}