в чем ошибка кода? некорректно работает последний foreach

//
Найдите 5 минимальных чисел, больших 700000, которые кратны 13 и не
подходят ни под одну из трех масок: *0??3*, *4??2 и *1*. 
upd: 
* - любая последовательность чисел(любой длины)
? - любая цифра 
###
var a := '234567890'.Cartesian(2).Select(x {x = ['2', '2']} -> '0'+x[0]+x[1]+'3');
var b := '234567890'.Cartesian(2).Select(x {x = ['2', '2']} -> '4'+x[0]+x[1]+'2');
for var i := 700000 to maxint do
  begin
      var i_s := i.ToString;
      if '1' in i_s then
        continue;
      if i.NotDivs(13) then
         continue;
      foreach var substr in b do
        if i_s.EndsWith(substr) then 
          continue;
      foreach var substr in a do
        if i_s.Contains(substr) then 
          continue;
      println(i);
  end;

Ответы (0 шт):