Pagini recente » Cod sursa (job #2458068) | Cod sursa (job #1278752) | Cod sursa (job #1187321) | Cod sursa (job #1139465) | Cod sursa (job #1290051)
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
unsigned long long v[1000];
unsigned long long put[1000];
unsigned int nr,x,copie1;
void calc()
{ unsigned int i,j;
for(i=1;i<=1000;i++)
v[i]=1;
i=1;
while(i!=11)
{
for(j=1;j<=i;j++)
v[i]*=5;
for(j=5;j<=v[i];j*=5)
put[i]=put[i]+v[i]/j;
i++;
}
}
void citire()
{
f>>nr;
}
int cauta(unsigned long long x)
{
unsigned long long i,copie,nr1,q=0,copie2,t=0;
for(i=1;i<=10;i++)
if(put[i]==x)
{q=1;
return v[i];}
if(q==0)
{
for(i=1;i<=9;i++)
{
if(x>put[i] && x<put[i+1])
{
nr1=v[i];
copie=x;
copie1=nr1;
while(copie1<v[i+1])
{
nr1+=5;
copie2=nr1;
while(nr1!=0)
{
t+=nr1/5;
nr1=nr1/5;
}
if(t==x)
{
return copie2;
}
else {t=0;
nr1=copie2;}
}
}
if(copie1>=v[i+1]) return -1;
}
}
}
int main()
{
citire();
calc();
g<<cauta(nr);
return 0;
}