Cod sursa(job #2739963)

Utilizator experiment322Alexandru-Damian Manea experiment322 Data 10 aprilie 2021 18:40:50
Problema Factorial Scor 25
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.84 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, no_2, no_5, min_no;

  setup_io();

  scanf("%d", &p);

  n = 0;
  no_2 = 0;
  no_5 = 0;
  while (no_2 < p || no_5 < p) {
    n += ((n + 1) % 5 == 0 ? 1 : 2);

    m = n;

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

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

  n = n == 0 ? 1 : n;

  min_no = no_2 < no_5 ? no_2 : no_5;

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

  return 0;
}