Программа вылетает т.к. много значений перебирает, если не хочется подобного просто смените ограничение.
var i,a,b,c,d:integer;
begin
for i:=1000 to 9999 do begin
a:=i mod 10;
b:=(i div 10) mod 10;
c:=(i div 100) mod 10;
d:=(i div 1000) mod 10;
if (a=b) and (b=c) and (c=d) then writeln ('odinakovie cifri - ',i);
if (a<>b) and (a<>c) and (a<>d) and (b<>c) and (b<>d) and (c<>d) then writeln('ne odinakovie cifri - ',i);
end;
Дело + монстр = демон
Порог + омлет = гром
Рынок + осада = роса
Олимп + катер = порт
36 часов понадобится,так как столб 60 см,с 12 до 24 улитка ползёт 25 см,с 00 до 12 улитка ползёт 10 см,и с 12 до 24 улитка ползёт 25 см,склади 25+25+10=60 см