Cod sursa(job #2470722)
Utilizator | Fazakas Alexandru sandifx68 | Data | 9 octombrie 2019 18:11:34 |
---|---|---|---|
Problema | Factorial | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.51 kb |
#include<cstdio>
#include<climits>
int nr0f(int n)
{
int no=0,put=5;
for(put=5; put<=n; put*=5)
no+=n/put;
return no;
}
int main()
{
int p,m,li=1,lf=INT_MAX-1,no;
FILE *f=fopen("fact.in","r");
fscanf(f,"%d", p);
while(li<=lf)
{
m=(li+lf)/2;
no=nr0f(m);
if(no<=m)
lf=m-1;
else
li=m+1;
}
f=fopen("fact.out","w");
if(nr0f(li)==p)
fprintf(f, "%d",li);
else fprintf(f, "-1");
}