これは2,3秒かかる。ソートして大きい数から探せば早くなろう。
ソース・プログラム
program PEuler4 implicit none integer, parameter :: n = 999 integer :: itab(n, n) = 0 integer, allocatable :: q(:) integer :: i, j forall(i = 1:n, j = 1:n, i >= j) itab(i, j) = i * j print *, maxval(itab, mask = palind(itab)) stop contains elemental logical function palind(k) integer, intent(in) :: k character(len = 6) :: tmp character(len = 1) :: ch(6) write(tmp, '(i6)') k ch = transfer(tmp, ' ', size = 6) palind = all( ch(1:3) == ch(6:4:-1) ) return end function palind end program PEuler4
実行結果
906609
続行するには何かキーを押してください . . .