Вот так считает <u>в пять раз быстрее</u>, чем в предыдущем решении. Тоже никакой оптимизации, просто более современный способ проверки.
<em>// PascalABC.NET 3.3, сборка 1611 от 06.01.2018</em> <em>// Внимание! Если программа не работает, обновите версию!</em>
begin for var f:=1 to 9 do for var o:=0 to 9 do if o=f then continue else for var r:=0 to 9 do if Seq(1,o,r).Distinct.Count<>3 then continue else for var t:=1 to 9 do if Seq(f,o,r,t).Distinct.Count<>4 then continue else for var y:=0 to 9 do if Seq(f,o,r,t,y).Distinct.Count<>5 then continue else for var e:=0 to 9 do if Seq(f,o,r,t,y,e).Distinct.Count<>6 then continue else for var n:=0 to 9 do if Seq(f,o,r,t,y,e,n).Distinct.Count<>7 then continue else for var s:=1 to 9 do if Seq(f,o,r,t,y,e,n,s).Distinct.Count<>8 then continue else for var i:=0 to 9 do if Seq(f,o,r,t,y,e,n,s,i).Distinct.Count<>9 then continue else for var x:=0 to 9 do if Seq(f,o,r,t,y,e,n,s,i,x).Distinct.Count=10 then begin var a1:=f*10000+o*1000+r*100+t*10+y; var a2:=t*100+e*10+n; var a3:=s*10000+i*1000+x*100+t*10+y; if a1+a2+a2=a3 then begin writeln(a1,'+',a2,'+',a2,' = ',a3); Exit end end end.