Cod sursa(job #877058)

Utilizator taigi100Cazacu Robert taigi100 Data 12 februarie 2013 15:21:20
Problema Factorial Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<stdio.h>
#include<string.h>
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()
{
    FILE *f=fopen("fact.in","r");
    FILE *g=fopen("fact.out","w");
    fscanf(f,"%lld",&p);
    if(!p)
    {
        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)
           {
               fprintf(g,"%lld",a);
           }
    else
       fprintf(g,"-1");
return 0;
}