Cod sursa(job #877061)

Utilizator taigi100Cazacu Robert taigi100 Data 12 februarie 2013 15:24:34
Problema Factorial Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
//#include<stdio.h>
//#include<string.h>
#include<iostream>
#include<fstream>
using namespace std;
long long p;
long long fivepow(long long a)
{
    long long c=0;
    for(long long i=5;i<=a;i*=5)
        c+=a/i;
    return c;
}
int main()
{
    ifstream f("fact.in");
    ofstream g("fact.out");
    //FILE *f=fopen("fact.in","r");
    //FILE *g=fopen("fact.out","w");
    //fscanf(f,"%lld",&p);
    f >> p;
    if(!p)
    {
        g << "1";
        //fprintf(g,"1");
        return 0;
    }
    long long a=1,b=20000000;

    while(a<b)
    {
        long long mid=(a+b)/2;
        long long n=fivepow(mid);
        if(p>n)
        {
            a=mid+1;
        }
        else
        {
            b=mid;
        }
    }
    if(fivepow(a)==p)
           {
               g << a;
               //fprintf(g,"%lld",a);
           }
    else
       g << "-1";
      // fprintf(g,"-1");
return 0;
}