Cod sursa(job #2361176)

Utilizator MatiPopa Mati Mati Data 2 martie 2019 13:36:36
Problema Factorial Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb

#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int p,i,ii,j,c, k,r,rez,m,d;
int main()
{
    fin>>p;

    if(p==0) {fout<<1; return 0;}
    if(p==1) {fout<<5; return 0;}

    i=0;
    c=1;

    while(p>=c-1)
    {if(p==c-1) {fout<<-1; return 0;}
    if(p==c) {fout<<round(pow(5,i+1)); return 0;}
    i++;   c+=round(pow(5,i)); }

    c=c-pow(5,i);//c=31; i=2;
 //   i--;
    rez=0;
    m=1;

    while(m!=0)
    {
        m=p%c;
        d=p/c;
        if(d>0)
            {
                rez+=d*round(pow(5,i));
                i--;
                c=c-round(pow(5,i));
                p=m;
             }
        if(d==0)
            {i--; c=c-pow(5,i); }
    }

    fout<<rez;

    return 0;
}