Cod sursa(job #2151149)
| Utilizator | Data | 4 martie 2018 10:04:25 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.51 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
int mere(int n)
{
int s=0;
for(int i=5;i<=n;i*=5)
s = s + n/i;
return s;
}
int main()
{
int n,p;
in>>p;
bool g = 0;
int st =0, dr = 1e9;
while(st <= dr)
{
int mid = (st+dr)/2;
int a = mere(mid);
if( a == p) g=1;
if( a >= p) dr = mid-1;
else st = mid+1;
}
if(p==0) out<<1;
else
if(g) out<<dr+1;
else out<<-1;
}
