Cod sursa(job #1109175)

Utilizator chiturobertChitu Robert Alexandru chiturobert Data 16 februarie 2014 19:59:03
Problema Factorial Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int main()
{
int v[20],r[20],i,m,n,p,ok,pp;
ok=0;
if(p==0)
{
    ok=1;
    g<<"1";
}
f>>p;
n=0;
v[2]=1;v[3]=6;v[4]=31;v[5]=156;v[6]=781;v[7]=3906;v[8]=19531;v[9]=97656;v[10]=488281;v[11]=2441406;v[12]=12207031;v[13]=61035156;v[14]=1000000001;
r[2]=5;r[3]=25;r[4]=125;r[5]=625;r[6]=3125;r[7]=15625;r[8]=78125;r[9]=390625;r[10]=1953125;r[11]=9765625;r[12]=48828125;r[13]=244140625;r[14]=1220703125;
pp=0;
while(n/5>0)
{
    pp=pp+n/5;
    n=n/5;
}
if(pp!=n)
{
    ok=2;
    g<<"-1";
}
while(p!=0)
{
    if(ok!=0)
        break;
    m=0;
    for(i=2;i<=14;i++)
    {
        if(v[i]<=p)
        {
            m=i;
        }
    }
        p=p-v[m];
        n=n+r[m];
}
if(p==0)
{
    ok=3;
    g<<"1";
}
if(ok==0)
g<<n;
return 0;
}