Pagini recente » Cod sursa (job #2120351) | Cod sursa (job #2932582) | Cod sursa (job #1401820) | Cod sursa (job #605463) | Cod sursa (job #363736)
Cod sursa(job #363736)
#include <fstream>
using namespace std;
ifstream in("fact.in",ifstream::in);
ofstream out("fact.out",ofstream::out);
int calculare(int p)
{
int fact,put,nr_ajuns;
nr_ajuns = 0;
while (p > 0)
{
//Cautam ce grupa maxima putem sari acum.
fact = 5;
put = 1;
while (put <= p)
{
fact *= 5;
put = put * 5 + 1;
}
fact /= 5;
put = (put - 1)/5;
//Vedem de cate ori se cuprinde.
//put_totala = (p/put)*put;//Cati de 5 am reusit sa repartizez.
nr_ajuns+=fact;
p -= put;//Cati de 5 mai am nerepartizati.
}
return nr_ajuns;
}
int main()
{
int nr_ajuns1,nr_ajuns2;
int p;
in>>p;
if (p == 0)
{
out<<1;
return 0;
}
nr_ajuns1 = calculare(p);
nr_ajuns2 = calculare(p+1);
if (nr_ajuns1 == nr_ajuns2)
out<<-1;
else
out<<nr_ajuns1;
}