Cod sursa(job #1886271)

Utilizator Matei_2001Matei Popa Matei_2001 Data 20 februarie 2017 19:55:27
Problema Factorial Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");

int numara_zerouri(int n);  // numara zerourile de la sfarsitul numarului factorial(n)
int numara_5(int n);        // numara cati de 5 sunt in descompunerea in factori primi a lui n

int main(void)
{
  int p, n = 1, zerouri = 0;
  
  f >> p;
    
  for (n = 1;; n++)
  {
    zerouri = numara_zerouri(n);	
	
	if (zerouri == p)
      break;
    else if (zerouri > p)
	{
      n = -1;
      break;	  
    } 
  } 	  

  g << n;
  
  return 0;
}


int numara_zerouri(int n)
{
  int i, zerouri = 0, cati_de_5 = 0;                                                   
  
  for (i = 5; i <= n; i += 5)
    cati_de_5 += numara_5(i);		

  while (cati_de_5)
  {
	++zerouri;
    --cati_de_5;	
  }
  
  return zerouri;  
}

int numara_5(int n)
{
  int numar_de_5 = 0;
  
  while (!(n % 5))
  {
	++numar_de_5;
    n /= 5;	
  }

  return numar_de_5;  
}