Pagini recente » preONI 2008 - Runda 1 | Cod sursa (job #1151056) | Cod sursa (job #2464945) | Cod sursa (job #1278117) | Cod sursa (job #541885)
Cod sursa(job #541885)
#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=aproximare_n*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;
}