• Jueves 23 de Mayo de 2013, 14:43

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

pablosavi14

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Problema factorial
« en: Lunes 6 de Julio de 2009, 14:26 »
0

Publicidad 
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