Pagini recente » Cod sursa (job #446891) | Cod sursa (job #578069) | Cod sursa (job #2077295) | Cod sursa (job #2853560) | Cod sursa (job #1297892)
#include <iostream>
#include <fstream>
using namespace std;
int Factorial(int n){
int x = 5;
int rezultat = 0;
while(x <= n){
rezultat += n / x;
x *=5;
}
return rezultat;
}
int main()
{
ifstream f("factorial.in");
ofstream g("factorial.out");
int p;
f>>p;
if(p == 0){
g<<1;
return 0;
}
int left = 0;
int right = 1<<12;
int ok = 0;
int middle;
while(left < right){
middle = (left + right) >> 1;
if(Factorial(middle) < p){
left = middle + 1;
}
if(Factorial(middle) > p){
right = middle - 1;
}
if(p == Factorial(middle)){
ok = 1;
break;
}
}
if(middle%10==1 || middle%10==2 || middle%10==3 || middle%10==4 )
middle=middle/10*10;
if(middle%10==6 || middle%10==7 || middle%10==8 || middle%10==9 )
middle=middle/10*10+5;
g<<middle;
return 0;
}