Cod sursa(job #877050)

Utilizator taigi100Cazacu Robert taigi100 Data 12 februarie 2013 15:13:39
Problema Factorial Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 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;
    }
    else  {
    long long mid,a=1,b=20000000;
    while(a<b)
    {
        mid=(a+b)/2;
        long long n=fivepow(mid);
            if(p<=n)
            {
                b=mid;
            }
            else
            {
                a=mid+1;
            }
    }
    if(fivepow(a)==p)
           {
               fprintf(g,"%lld",a);
           }
    else
       fprintf(g,"-1");
}
return 0;
}