Pagini recente » Cod sursa (job #1050679) | Cod sursa (job #1003566) | Cod sursa (job #1480131) | Cod sursa (job #1002544) | Cod sursa (job #333827)
Cod sursa(job #333827)
#include <stdio.h>
int st=1,dr=2000000000,mij;
int p;
int minim;
int fact(int n)
{
int s,put;
s = 0;
put= 5;
while (n/put > 0)
{
s = s + n/put;
put = put * 5 ;
}
return s;
}
int main()
{
//citire putin diferita de citirea ta
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%d",&p);
minim = -1;
while (st<=dr)
{
mij = (st + dr) / 2;
int rezultat = fact(mij); // aici apelez doar o data functia si retin rezultatul, deci e o optimizare
if (p == rezultat) {minim = mij; dr = mij - 1;}
if (p > rezultat) st = mij + 1;
else
if (p < rezultat) dr = mij - 1;
}
printf("%d", minim);
return 0;
}