Pagini recente » Cod sursa (job #1263458) | Cod sursa (job #1521722) | Cod sursa (job #2300487) | Cod sursa (job #918796) | Cod sursa (job #333826)
Cod sursa(job #333826)
#include <stdio.h>
int st=1,dr=10000,mij;
long long 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;
}