program euclid_mullin; print(2); product := 2; loop for i in [2..16] do next := smallest_factor(product + 1); product *:= next; print(next); end loop; op smallest_factor(n); if even n then return 2; end if; d := 3; loop while d*d <= n do if n mod d=0 then return d; end if; d +:= 2; end loop; return n; end op; end program;