Cod sursa(job #544374)
| Utilizator | Data | 1 martie 2011 15:39:04 | |
|---|---|---|---|
| Problema | Factorial | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 kb |
#include<stdio.h>
FILE *in,*out;
int nr0,p;
int num,aux,aux2;
inline int verif()
{
if(!p)
return 1;
while(nr0<p)
{
num+=25;
nr0+=4;
aux=num;
if(nr0<p)
{
while( !(aux%5) )
{
nr0++;
aux/=5;
}
}
else
{
aux2=nr0-p+1;
num-=5*aux2;
nr0-=aux2-1;
}
}
return nr0==p ? num : -1;
}
int main()
{
in=fopen("fact.in","rt");
out=fopen("fact.out","wt");
fscanf(in,"%d",&p);
fprintf(out,"%d",verif());
return 0;
}
