Cod sursa(job #1722367)

Utilizator CalarisPredut Denis Stefanita Calaris Data 27 iunie 2016 22:08:17
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <iostream>
#include <fstream>

using namespace std;

long long tz(unsigned long long number)
{
  int n,multipleOfFive;

  unsigned long long total;

  multipleOfFive = 5;
  n = number/5;
  total = 0;

  do
    {
    total+= n;
    multipleOfFive*=5;
    n = number/multipleOfFive;
    }while(n>=1);

  return total;
}

int main()
{
    ifstream f("fact.in");
    ofstream g("fact.out");

    unsigned long long p,a,b,c,n;
    f>>n;

    a = 0;
    b = 92233720368547758;

    c = (b + a)/2;
    p = tz(c);
    if(n==0)g<<1;
    else
        {
    while(p!=n)
        {
        if(p<n)
            {
            a = c+1;
            }
        else if(p> n)
            {
            b = c - 1;
            }
        else break;
        c = (a + b)/2;
        p = tz(c);
        if(p == n || a == b) break;
        }
    if( a == b && p!=n)g<<-1;
    else
        {   while(c%5!=0)--c;
            g<<c;
        }
    }
    return 0;
}