Pagini recente » Cod sursa (job #2979651) | Cod sursa (job #626982) | Cod sursa (job #2868687) | Cod sursa (job #1378533) | Cod sursa (job #881455)
Cod sursa(job #881455)
#include <iostream>
#include <fstream>
using namespace std;
int P;
int Legendre(int numar, int fact){
int s = 0;
while( numar >= fact )
s += numar / fact,
fact *= 5;
return s;
}
int cautare_binara(int st, int dr){
int mij = (st + dr) / 2;
if(st > dr)
return -1;
if( Legendre(mij, 5) == P ){
for(int i = st; i <= mij; i++)
if( Legendre(mij, 5) == P )
return i;
}
else
if( Legendre(mij, 5) < P )
return cautare_binara(mij+1, dr);
else
return cautare_binara(st, mij-1);
}
int main(){
ifstream f("fact.in");
ofstream g("fact.out");
f >> P;
if(P == 0)
g << 1;
else
g << cautare_binara(1, 5*P);
return 0;
}