Заменить буквы цифрами так чтобы соотношение оказалось верным(одинаковым буквам соотведствуют одинаковые цифры, разным - разные)
ХРУСТ*ХРОХО=рррррррррр
это примет где рррррррр-это числа
var
i,h,r,u,s,t,g,o: byte;
a: set of byte;
hrust,grohot,rrr: Int64;
begin
for r:=1 to 9 do begin
a:=[r];
rrr:=r;
for i:=1 to 10 do rrr:=rrr*10+r;
for h:=0 to 9 do if not (h in a) then begin
a:=a+[h];
for u:=0 to 9 do if not (u in a) then begin
a:=a+[u];
for s:=0 to 9 do if not (s in a) then begin
a:=a+[s];
for t:=0 to 9 do if not (t in a) then begin
a:=a+[t];
for g:=0 to 9 do if not (g in a) then begin
a:=a+[g];
for o:=0 to 9 do if not (o in a) then begin
hrust:=(((h*10+r)*10+u)*10+s)*10+t;
grohot:=((((g*10+r)*10+o)*10+h)*10+o)*10+t;
if hrust*grohot=rrr then WriteLn(hrust,'*',grohot,'=',rrr);
end;
a:=a-[g]
end;
a:=a-[t]
end;
a:=a-[s]
end;
a:=a-[u]
end;
a:=a-[h]
end
end
end.
var
i,h,r,u,s,t,g,o: byte;
hrust,grohot,rrr: Int64;
begin
for r:=1 to 9 do begin
rrr:=r;
for i:=1 to 10 do rrr:=rrr*10+r;
for h:=0 to 9 do for u:=0 to 9 do for s:=0 to 9 do for t:=0 to 9 do for g:=0 to 9 do for o:=0 to 9 do begin
hrust:=(((h*10+r)*10+u)*10+s)*10+t;
grohot:=((((g*10+r)*10+o)*10+h)*10+o)*10+t;
if hrust*grohot=rrr then WriteLn(hrust,'*',grohot,'=',rrr);
end
end
end.