Cod sursa(job #1803920)

Utilizator rares1012Rares Cautis rares1012 Data 12 noiembrie 2016 00:15:07
Problema Factorial Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <stdio.h>
#include <stdlib.h>

inline long long int put5(long long int n)
{
    long long int s=0;
    while(n>0)
    {
        n=n/5;
        s+=n;
    }
    return s;
}

int main()
{
    long long int n,i=1,p,k;
    FILE*fi,*fo;
    fi=fopen("fact.in","r");
    fo=fopen("fact.out","w");
    fscanf(fi,"%lld",&n);
    if(n==0)
        fprintf(fo,"1");
    else
    {
        i=i<<48;
        printf("%lld ",i);
        p=0;
        while(i>0)
        {
            if(put5(p+i)<=n)
            {
                p+=i;
            }
            i/=2;
        }
        while(put5(p)>=n)
            p--;
        if(put5(p+1)==n)
            fprintf(fo,"%lld",p+1);
        else fprintf(fo,"-1");
    }
    fclose(fi);
    fclose(fo);
    return 0;
}