Mai intai trebuie sa te autentifici.
Cod sursa(job #1363891)
| Utilizator | Data | 27 februarie 2015 12:38:06 | |
|---|---|---|---|
| Problema | Factorial | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.74 kb |
#include <iostream>
#include <fstream>
#include <cmath>
#define NMax 1000000000
using namespace std;
ifstream f("cmmdc.in");
ofstream g("cmmdc.out");
int fact(int x)
{
int nr=0,p=5;
while (x>=p)
{
nr+=x/p;
p*=5;
}
return nr;
}
int main ()
{
int p,val;
f >> p;
if (p==0) g <<1;
else
{
int min=1,max=NMax,mid;
bool ok=false;
while (min<=max && !ok)
{
mid=(min+max)/2;
val=fact(mid);
if (val<p) min=mid+1;
else if (val>p) max=mid-1;
else ok=true;
}
if (ok)
{
while (mid%5) mid--;
g <<mid;
}
else g <<-1;
}
}
