

! Programa que calcula terminos de la sucesion
! s(k) = 5*(k^2+1)/k^3, hasta que el termino sea menor 
! que un valor introducido por el usuario
! o hasta que el numero de terminos	sea mayor que 100
! Debe Imprimir  el numero de terminos claculados

Program Sucesion
 implicit none
Integer, Parameter :: n=100
Integer :: k, sum2
Real :: sum1, valor=-2
Logical::  noseguir=.FALSE.	

Do While (valor<0) .or. (valor>1)
	 Print*, "Introducir un número real entro 0 y 1:"
	 Read*, valor
EndDo

sum2=0
k=0
Do While (.NOT. noseguir)
	sum2=sum2+1
	k=k+1
	sum1= 5* k^2.0 +1 / k^3   
	Print*, "el termino ", sum2, '  es: ', sum1
	if (sum2>=n .or. sum1<=valor) then
		noseguir=.FALSE.
		if (sum2>=n) 
			Print*, 'Ya ha imprimido ', n ' terminos'
		else 
			Print*, 'El termino es menor de', valor
		endif
   endif
  
EndDo

Print*, "numeros de terminos imprimidos", sum2

End Program sucesion