Problema en factorial
Publicado por Pablo (1 intervención) el 06/07/2009 14:21:08
Hola,
Tengo una función para calcular el factorial de un numero dentro de una programa. Todo va bien hasta que llega al fatorial de 13, donde me da un resultado erroneo, y partir de hay empieza a darme valores negativos o erroneos. La funcion es la siguiente:
**************************************************************************
C Computes factorial of an integer
C**************************************************************************
C INPUTS:
C n: integer
C OUTPUTS:
C nfact: integer
C**************************************************************************
function factorial(n) result(nfact)
implicit none
integer, intent(in) :: n
integer (SELECTED_INT_KIND (5)) nfact
C integer :: nfact
integer :: h
nfact = 1
print*,'n',n
if (n > 1) then
do h = 2, n
print*,'h',h
nfact = nfact * h
print*,'nfact',nfact
end do
else
nfact=1
endif
print*,'nfact',nfact
end function
Si alguien ve donde puede estar el error lo agradeceria mucho.
Tengo una función para calcular el factorial de un numero dentro de una programa. Todo va bien hasta que llega al fatorial de 13, donde me da un resultado erroneo, y partir de hay empieza a darme valores negativos o erroneos. La funcion es la siguiente:
**************************************************************************
C Computes factorial of an integer
C**************************************************************************
C INPUTS:
C n: integer
C OUTPUTS:
C nfact: integer
C**************************************************************************
function factorial(n) result(nfact)
implicit none
integer, intent(in) :: n
integer (SELECTED_INT_KIND (5)) nfact
C integer :: nfact
integer :: h
nfact = 1
print*,'n',n
if (n > 1) then
do h = 2, n
print*,'h',h
nfact = nfact * h
print*,'nfact',nfact
end do
else
nfact=1
endif
print*,'nfact',nfact
end function
Si alguien ve donde puede estar el error lo agradeceria mucho.
Valora esta pregunta


0