• Miércoles 24 de Abril de 2024, 10:45

Autor Tema:  Problema factorial  (Leído 2220 veces)

pablosavi14

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Problema factorial
« en: Lunes 6 de Julio de 2009, 14:26 »
0
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.

facured12

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Problema factorial
« Respuesta #1 en: Sábado 25 de Julio de 2009, 16:51 »
0
Hola, te paso el que hice yo. Es bastante simple pero creo que funciona bien, salud(2)!

PROGRAM FACTORIAL
       
WRITE(*,*)'N: '
READ(*,*)N
L=1
DO INDEX=1,N
L=L*INDEX
ENDDO
WRITE(*,*)L
END