Cod sursa(job #1526110)
Utilizator | Iconaru Marian Catalin backtrack | Data | 15 noiembrie 2015 22:48:09 |
---|---|---|---|
Problema | Factorial | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.47 kb |
#include<iostream>
using namespace std;
int p;
int solutie(int n){
int sum=0;
for(int i=5;n/i>0;i*=5)
sum+=n/i;
if(sum==p)
return 1;
return 0;
}
int cautare(int i,int j){
if(i>j)return -1;
int mij=(i+j)/2;
if(solutie(mij)&& !solutie(mij-1))
return mij;
if(solutie(mij) && solutie(mij-1))
return cautare(i,mij-1);
if(!solutie(mij))
return cautare(mij+1,j);
}
int main(){
cin>>p;
cout<<cautare(0,p*5);
system("pause");
return 0;
}