Pagini recente » Statistici Visan Stefania (stefaniavisan) | Profil M@2Te4i | Cod sursa (job #331444) | Istoria paginii utilizator/mateidistrugatorul6969 | Cod sursa (job #2008546)
#include <fstream>
using namespace std;
int zerouri(int x){
int nr_zero = 0, c, copy;
for (int i = 5; i <= x; i += 5){
c = 0;
copy = i;
while (copy % 5 == 0){
copy /= 5;
c++;
}
nr_zero += c;
}
return nr_zero;
}
int factorial(int p){
int n, st, dr;
if (p == 0)
return 1;
else{
st = 0; dr = 5 * p;
while (st <= dr){
n = (st + dr) / 2;
if (p == zerouri(n)){
while (n % 5 != 0)
n--;
return n;
}
if (p < zerouri(n))
dr = n - 1;
else
st = n + 1;
}
return -1;
}
}
int main(){
int p;
ifstream citire ("fact.in");
citire >> p;
citire.close();
ofstream afisare ("fact.out");
afisare << factorial(p);
afisare.close();
return 0;
}