Cod sursa(job #797799)

Utilizator ildikoprecupPrecup Ildiko ildikoprecup Data 14 octombrie 2012 21:44:50
Problema Factorial Scor 10
Compilator c Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int cati0(long numar){
    int suma = 0;
    while (numar / 5 != 0){
          suma = suma + ( numar / 5 );
          numar = numar / 5;
    }
    return suma;
}
int cati5(long numar){
    int n = 0;
    while (numar % 5 == 0){
          numar = numar / 10;
          n++;
    }
    return n;
}
int main(int argc, char *argv[])
{
    long p = 0;
    FILE * f = fopen("fact.in", "r");
    fscanf(f, "%ld", &p);
    fclose(f);
    
    long n = p * 5;
    if ( n == 0) n = 1;
    else
    {
        int scad0 = cati0(n) - p;
        while (scad0 > 0)
        {
          scad0 = scad0 - cati5(n);
          n = n - 5;     
        }
        if (scad0 < 0) n = -1;
    }
    f = fopen("fact.out", "w");
    fprintf(f, "%ld", n);
    fclose(f);
    return 0;
}