Cod sursa(job #2468523)
| Utilizator | Data | 5 octombrie 2019 16:41:14 | |
|---|---|---|---|
| Problema | Factorial | Scor | 30 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 kb |
#include <cstdio>
using namespace std;
int ncz(int n)
{
int s=0,p5=5;
while(p5<=n)
{
s+=n/p5;
p5*=5;
}
return s;
}
int main()
{
int m,nc,st=0,dr=10000000,p;
FILE *f=fopen("fact.in","r");
fscanf(f,"%d",&p);
while(st<=dr)
{
m=(st+dr)/2;
nc=ncz(m);
if(p<=nc)dr=m-1;
else st=m+1;
}
f=fopen("fact.out","w");
if(p==0)fprintf(f,"1");
else
if(ncz(st)==p)
fprintf(f,"%d",st);
else
fprintf(f,"%d",-1);
return 0;
}
