Cod sursa(job #2308192)
Utilizator | Data | 26 decembrie 2018 15:40:27 | |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.53 kb |
#include <fstream>
#include <iostream>
#include <algorithm>
using namespace std;
ifstream f("fact.in"); ///kruskal
ofstream g("fact.out");
int p,c,k;
int cb(int p) { /// cel mai mic nr nat n pt care n! are exact p cifre de 0
int s=1, d=1000000000, m, pos=-1, k5, c;
while(s<=d) {
m = s +(d-s)/2;
c=5, k5=0; while (c<=m) k5+=m/c, c*=5;
if (k5==p) pos=m, d = m-1;
else if(k5>p) d=m-1;
else s=m+1;
}
return pos;
}
int main()
{
f>>p;
g<<cb(p);
return 0;
}