c
c *** PROGRAM FATORIAL *** 4 Mai 97
c
c     define "fatorial" como inteiro
c     integer fatorial
      real*8 fatorial
c
c     lê o valor de N
    4 write(*,5)
    5 format(//,5x,'Entre com o valor de N = ',\)
      read(*,*) N
c
c     testa se N é maior que 10; se for
c     retorna para solicitar um novo valor válido
c      if(n.gt.10.or.n.lt.0) then
c	  write(*,*) 'Valor inválido ( 0 <= valor < 11)'
c	  goto 4
c	end if
c
c     opção 1
c
c     calcula o fatorial de N com DO crescente
c     fatorial = 1
c     do i = 2, N
c	  fatorial = fatorial * i
c	end do
c
c     opção 2
c
c     calcula o fatorial de N com DO decrescente
      fatorial = N
	do i = N-1,1,-1
	  fatorial = fatorial * i
	end do
c
c
c     informa o resultado na tela
      write(*,6) N, fatorial
c   6 format(//,5x,'O fatorial de ',i2,' é = ',i10,/)
    6 format(//,5x,'O fatorial de ',i2,' é = ',1pe15.5,/)
c
c     retorna ao início para um novo cálculo
      goto 4
c
      end