Pagini recente » Cod sursa (job #222549) | Cod sursa (job #1203952) | Cod sursa (job #457688) | Monitorul de evaluare | Cod sursa (job #211440)
Cod sursa(job #211440)
#include <stdio.h>
#define fin "factorialul.in"
#define fout "factorialul.out"
FILE *fi,*fo;
long factorial(long N) {
long i, j, result, dp;
dp=0; result = 1;
for(i = 1; i <= N; i++) {
j = i; //divide i by 2 and 5
while (! (j % 2)) {
j /= 2; dp++;
}
while (! (j % 5)) {
j /= 5; dp--;
}
result = (result * (j % 10)) % 10;
}
for(i = 1; i <= dp; i++) {
result = (result * 2) %10;
}
return result;
}
int main() {
long n,bul,p;
fi = fopen(fin,"r");
fscanf(fi,"%d %d",&n,&p);
fo = fopen(fout,"w");
n=0;
while (!bul)
{
n++;
if (factorialul(n) == p)
{
fprintf(fo,"%ld\n",n);
bul = 1;
}
}
fclose(fi);
fclose(fo);
return 0;
}