Cod sursa(job #2664977)
| Utilizator | Data | 29 octombrie 2020 20:39:01 | |
|---|---|---|---|
| Problema | Factorial | Scor | 50 |
| Compilator | c-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.53 kb |
#include <stdio.h>
#include <stdlib.h>
int nrzero(long long x){
long long p;
int s;
s=0;
for(p=5;p<=x;p*=5)
s+=x/p;
return s;
}
int main(){
int p;
long long step,poz;
FILE *fin, *fout;
fin=fopen("fact.in","r");
fscanf(fin,"%d",&p);
fclose(fin);
poz=0;
for(step=1<<25;step>0;step>>=1)
if(nrzero(poz+step)<p)
poz+=step;
fout=fopen("fact.out","w");
if(nrzero(poz+1)==p)
fprintf(fout,"%lld\n",poz+1);
else
fprintf(fout,"-1\n");
fclose(fout);
return 0;
}
