Cod sursa(job #786585)

Utilizator andreiiiiPopa Andrei andreiiii Data 11 septembrie 2012 17:03:50
Problema Factorial Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>
using namespace std;

ifstream fin("fact.in");
ofstream fout("fact.out");

int n, i, a[]={5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625}, b=1, j, x, s=0;

int main()
{
    fin>>n;
    if(n==0) fout<<1;
    else if(n==1) fout<<5;
    else
    {
        for(i=0;;i++)
        {
            if(n==b) {fout<<a[i-1];break;}
            else
            {
                b+=(a[i]/5);
                if(!i) b--;
                if(n<b)
            {
                for(j=a[i];b>n;j-=5)
                {
                    x=j;
                    s=0;
                    while(x%5==0)
                    {
                        x/=5;
                        s++;
                    }
                    b-=s;
                    if(b==n) fout<<j-5;
                    else if(b<n) fout<<-1;
                }
                break;
            }
            }
        }
    }
}