Pagini recente » Cod sursa (job #2331045) | Cod sursa (job #340030) | Cod sursa (job #421663) | Cod sursa (job #2866543) | Cod sursa (job #3218543)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream f("fact.in");
ofstream g("fact.out");
int P, i;
long long sum = 0, answear =0;
int factor5 = 0, limita = 0;
int v[13], times[13];
v[0] = 0;
f >> P;
if(P == 0)
{
g << 1;
return 0;
}
else
{
while(P > sum)
{
sum += limita * 5 + 1;
limita = limita * 5 + 1;
times[factor5] = 0;
v[++factor5] = limita;
}
if(P == v[factor5])
{
limita = 1;
for(i = 1; i <= factor5; i++)
{
limita = limita * 5;
}
g << limita;
return 0;
}
else
{
sum = 0;
factor5 -= 1;
times[0] = 0;
v[0] = 0;
for(i = factor5; i >= 1; i--)
{
if(times[i] == 4) continue;
if(sum + v[i] == P)
{
++times[i];
sum += v[i];
break;
} else if (sum + v[i] < P)
{
sum += v[i];
times[i]++;
++i;
}
}
}
if(P != sum) g << -1;
else
{
limita = 5;
for(i = 1; i <= factor5; i++)
{
answear += limita * times[i];
limita = limita * 5;
}
g << answear;
}
}
return 0;
}