Cod sursa(job #1990845)
| Utilizator | Data | 13 iunie 2017 21:37:31 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.55 kb |
#include <fstream>
using namespace std;
int zero_fact(int n){
int p=5,nrzr=0;
while(n>=p){
nrzr+=n/p;
p*=5;
}
return nrzr;
}
int caut(int st, int dr, int x )
{
int mid,save=-1;
while ( st<=dr )
{
mid=( st+dr )/2;
int U=zero_fact(mid);
if( x>U ) st=mid+1; else dr=mid-1;
if( U == x ) save=mid;
}
return save;
}
int main()
{
ifstream in("fact.in");
ofstream out("fact.out");
int p; in>>p;
out<<caut(1,1<<30,p );
return 0;
}
