Var k,i,a,b,c,d,m:integer; begin for i:=1000 to 9999 do begin m:=0; a:=i div 1000; if a=7 then m:=m+1; b:=i div 100 mod 10; if b=7 then m:=m+1; c:=i div 10 mod 10; if c=7 then m:=m+1; d:=i mod 10; if d=7 then m:=m+1; if m=2 then k:=k+1; end; writeln(k); end. --- Это если надо программу написать. Если просто число нужно, то 459 чисел (по крайней мере так посчитала эта сама программа).
Если дальше завершить программу, то получим это: program HelloWorld; function ez(a: longint): boolean; var c: integer; begin ez := a >= 2; for c := 2 to trunc(sqrt(a)) do if a mod c = 0 then ez := false end; var i, k: integer; num: array [1 .. 100] of integer; begin for i := 0 to 99 do num[i+1] := i + 1; k := 0; i := 1; while k < 7 do begin if ez(num[i]) = true then k := k + 1; i := i + 2; end; write(num[i-2]); end. ответ 19
Так с наскоку увидеть перестановку не получилось, и для улучшения зрения сделана программка Возможные перестановки хранятся в массиве Xchng. В программе сделана проверка на две перестановки, что, по большому счёту избыточно, т.к. кратчайшее решение содержит всего одну перестановку. но дополнить программу проверками на 3 и 4 перестановку можно.
begin
for i:=1000 to 9999 do
begin
m:=0;
a:=i div 1000; if a=7 then m:=m+1;
b:=i div 100 mod 10; if b=7 then m:=m+1;
c:=i div 10 mod 10; if c=7 then m:=m+1;
d:=i mod 10; if d=7 then m:=m+1;
if m=2 then k:=k+1;
end;
writeln(k);
end.
---
Это если надо программу написать.
Если просто число нужно, то 459 чисел (по крайней мере так посчитала эта сама программа).