Cod sursa(job #1424854)
| Utilizator | Data | 25 aprilie 2015 16:20:28 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | c | Status | done |
| Runda | Arhiva de probleme | Marime | 0.66 kb |
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int i=0;
int zero (int n)
{
int nr=0;
while (n>=5)
{
nr+=n/5;
n/=5;
}
return nr;
}
void cb (int p)
{
i=0;
int pas=1<<30;
while (pas!=0)
{
if (zero(i+pas)<p)
{
i+=pas;
}
pas>>=1;
}
}
int main()
{
FILE *fin,*fout;
fin=fopen ("fact.in","r");
fout=fopen ("fact.out","w");
int p;
fscanf (fin,"%d",&p);
cb (p);
i++;
if (zero(i)!=p)
{
fprintf (fout,"%d",-1);
}
else
{
fprintf (fout,"%d",i);
}
fclose (fin);
fclose (fout);
return 0;
}
