Cod sursa(job #1746464)
Utilizator | Enache-Stoian Catalin catalinenachestoian | Data | 23 august 2016 13:30:29 |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.54 kb |
#include <iostream>
#include <fstream>
using namespace std;
int f(int n){
int rez=0;
for(int i=5;i<=n;i*=5)
rez+=n/i;
return rez;
}
int main()
{
ifstream in("fact.in");
ofstream out("fact.out");
int p;
in>>p;
int s=1, d=p*5, nr;
while (s<=d){
nr= (s+d)/2;
if (f (nr) >= p )
d=nr-1;
else
s=nr+1;
}
if ( f(s) == p )
out<<s;
else
out<<-1;
in.close();
out.close();
return 0;
}