Cod sursa(job #1803915)

Utilizator rares1012Rares Cautis rares1012 Data 12 noiembrie 2016 00:11:52
Problema Factorial Scor 10
Compilator c Status done
Runda Arhiva de probleme Marime 0.76 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,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<<28;
        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;
}