Cod sursa(job #2224568)
| Utilizator | Data | 24 iulie 2018 15:09:51 | |
|---|---|---|---|
| Problema | Factorial | Scor | 85 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.62 kb |
#include <stdio.h>
#include <algorithm>
using namespace std;
int p;
int check(long long x)
{
int i,s=0;
for(i=5;x/i>=1;i=i*5)
{
s=s+x/i;
}
return s;
}
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%d",&p);
if(p==1)
{
printf("%d\n",1);
return 0;
}
long long pas = 1 << 28;
int k;
for(k =0; pas ;pas>>=1)
{
if(check(k+pas) < p)
k+=pas;
}
printf("%d\n", k+1);
if(k == 0)
{
printf("%d\n",-1);
return 0;
}
fclose(stdin);
fclose(stdout);
return 0;
}
