Cod sursa(job #2739960)

Utilizator experiment322Alexandru-Damian Manea experiment322 Data 10 aprilie 2021 18:25:48
Problema Factorial Scor 25
Compilator c-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <stdio.h>

#define IFILE "fact.in"
#define OFILE "fact.out"

// int is_file_present(const char *filename) {
//  FILE *file;

//  if (NULL != (file = fopen(filename, "r"))) {
//    fclose(file);
//    return 1;
//  }

//  return 0;
//}

// void setup_io() {
//  if (is_file_present(IFILE)) {
//    freopen(IFILE, "r", stdin);
//    freopen(OFILE, "w", stdout);
//  }
//}

int main(void) {
  int n, m, p, z, no_2, no_5, min_no;

  freopen(IFILE, "r", stdin);
  freopen(OFILE, "w", stdout);

  scanf("%d", &p);

  n = 2;
  z = 0;
  no_2 = 0;
  no_5 = 0;
  while (z < p) {
    m = n;

    while (m % 2 == 0) {
      m /= 2;
      no_2 += 1;
    }
    while (m % 5 == 0) {
      m /= 5;
      no_5 += 1;
    }

    if (no_2 != 0 && no_5 != 0) {
      if (no_2 < no_5) {
        min_no = no_2;
      } else {
        min_no = no_5;
      }

      z += min_no;
      no_2 -= min_no;
      no_5 -= min_no;
    }

    n += 1;
  }
  n -= 1;

  printf("%d\n", z == p ? n : -1);

  return 0;
}