Pagini recente » Cod sursa (job #3181128) | Cod sursa (job #2238641) | Cod sursa (job #1612427) | Cod sursa (job #2253469) | Cod sursa (job #476690)
Cod sursa(job #476690)
#include <fstream>
using namespace std;
int N;
long long P;
void proc()
{
int S=0;
int A[12]={1,6,31,156,781,3906,19531,97656,488281,2441406,12207031,61035156};
int B[12]={5,25,125,625,3125,15625,78125,390625,1953125,9764625,48828125,244140625};
int contor[12];
memset(contor,0,sizeof(contor));
while (P)
{
if(P>=A[11])
{
contor[11]++;
S+=B[11];
P-=A[11];
}
else if(P>=A[10])
{
contor[10]++;
S+=B[10];
P-=A[10];
}
else if(P>=A[9])
{
contor[9]++;
S+=B[9];
P-=A[9];
}
else if(P>=A[8])
{
contor[8]++;
S+=B[8];
P-=A[8];
}
else if(P>=A[7])
{
contor[7]++;
S+=B[7];
P-=A[7];
}
else if(P>=A[6])
{
contor[6]++;
S+=B[6];
P-=A[6];
}
else if(P>=A[5])
{
contor[5]++;
S+=B[5];
P-=A[5];
}
else if(P>=A[4])
{
contor[4]++;
S+=B[4];
P-=A[4];
}
else if(P>=A[3])
{
contor[3]++;
S+=B[3];
P-=A[3];
}
else if(P>=A[2])
{
contor[2]++;
S+=B[2];
P-=A[2];
}
else if(P>=A[1])
{
contor[1]++;
S+=B[1];
P-=A[1];
}
else if(P>=A[0])
{
contor[0]++;
S+=B[0];
P-=A[0];
}
}
fstream fout("fact.out",ios::out);
int ok=0;
for(int i=0;i<=11;i++)
if(contor[i]>4) ok++;
if(!ok)
fout<<S<<"\n";
else
fout<<"-1\n";
fout.close();
}
int main(int argc,char *agv[])
{
fstream fin("fact.in",ios::in);
fin>>P;
if(P)
proc();
else
{
fstream fout("fact.out",ios::out);
fout<<"1\n";
fout.close();
}
fin.close();
}