program main implicit none integer*8::L,H,up,i,j,bad integer*8,allocatable::dp(:),dp2(:) read *,L,H up = INT(SQRT(DBLE(H))) allocate(dp(up),dp2(L:H)) dp = 0 dp2 = 0 bad = 1 do i=2,up if(dp(i).ne.0) cycle do j=i+i,up,i dp(j) = 1 end do do j=((L+i-1)/i)*i,H,i if(dp2(j).ne.0) cycle dp2(j) = 1 bad = j end do end do print'(i0)',bad end program main