Pagini recente » Cod sursa (job #1737262) | Cod sursa (job #554136) | Cod sursa (job #2488137) | Cod sursa (job #1045239) | Cod sursa (job #541891)
Cod sursa(job #541891)
#include <fstream>
using namespace std;
inline unsigned long long int zerouri(unsigned long long int n) {
unsigned int suma=0;
unsigned long long x;
x=n;
while(n) {
suma+=n%5;
n/=5;
}
return (x-suma)/4;
}
int main() {
unsigned long long int nr_zerouri,aproximare_n,nr_zerouri_n_factorial;
bool gasit=false;
ifstream f("fact.in");
f>>nr_zerouri;
f.close();
ofstream g("fact.out");
if(nr_zerouri==0) {
g<<1;
g.close();
return 0;
}
aproximare_n=nr_zerouri*4;
verifica:
if(!gasit) {
nr_zerouri_n_factorial=zerouri(aproximare_n);
if(nr_zerouri_n_factorial==nr_zerouri) {
gasit=true;
g<<aproximare_n;
g.close();
return 0;
}
else if(nr_zerouri_n_factorial>nr_zerouri){
gasit=true;
} else {
aproximare_n++;
}
goto verifica;
}
g<<-1;
g.close();
return 0;
}