program control_constructs implicit none integer :: i, n logical :: prime = .true. print *, 'Give integer: ' read *, n sieve: do i = 2, n/2 if (MOD(n,i)==0) then ! Remainder function MOD(n,i) = prime = .false. ! n-INT(n/i)*i exit sieve end if end do sieve select case (prime) case (.true.) print *, n, ' is a prime number' case (.false.) print *, n, ' is not a prime' end select end program control_constructs