Cod sursa(job #206356)

Utilizator Poisoned_IvyAnda Nicolae Poisoned_Ivy Data 6 septembrie 2008 00:47:19
Problema Factorial Scor 10
Compilator c Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <stdio.h>
#include <math.h>

unsigned long p;

//calculeaza cate zerouri are la final x!
unsigned long zerouri(int x)
{
    unsigned long i=5, s=0;
    while (floor(x/i)>0)
    {
          s+=floor(x/i);
          i*=5;
    }
    return s;
}


unsigned long det(unsigned long p)
{
     unsigned long i=1, zero;
     //printf("intru\n");
     //printf("p=%lu\n", p);
     zero=zerouri(i);
     //printf("zero=%lu\n", zero);
     while (zero<p)
     {
         //printf("zero=%lu\n", zero);
         i*=5;
         zero=zerouri(i);
     }
     if (zero==p) return i;
     return -1;
}


int main()
{
    FILE *f, *g;
    f=fopen("fact.in", "r");
    fscanf(f, "%lu", &p);
    g=fopen("fact.out", "w");    
    fprintf(g, "%lu\n", det(p));
    //getchar();
    return 0;
}