Pagini recente » Cod sursa (job #720828) | Cod sursa (job #1397252) | Cod sursa (job #2690806) | Cod sursa (job #2026119) | Cod sursa (job #177974)
Cod sursa(job #177974)
#include <fstream.h>
#include <iostream.h>
ifstream f("fact.in");
ofstream g("fact.out");
long v[15]={0,5,25,125,625,3125,15625,78125,390625,1953125,9765625,48828125,244140625,1220703125},z[15]={0,1,6,31,156,781,3906,19531,97656,488281,2441406,12207031,61035156,305175781};
long nr0(long a)
{
long nr=0;
long b;
b=a;
while (b%5==0)
{
nr++;
b=b/5;
}
return nr;
}
int main()
{
long p;
f>>p;
if (p==0)
g<<1;
else
{
int i;
i=1;
while (z[i]<p)
i++;
i--;
long j;
long nrc=z[i]-nr0(v[i]);
int sw=0;
for (j=v[i];j<=v[i+1] && sw==0;j++)
{
if (p==nrc)
{
g<<j-1;
sw=1;
}
nrc=nrc+nr0(j);
}
if (sw==0)
g<<"-1";
}
}