1.
begin
for var i := 1 to 9 do begin
for var j := 0 to 9 do write(i*10+j, ' ');
writeln;
end;
end.
2.
var
n, s, p : integer;
begin
write('введите число n=');
readln(n);
p := 1;
while n > 0 do begin
s += n mod 10;
p *= n mod 10;
n := n div 10;
end;
writeln('сумма ', s);
writeln('произведение ', p)
end.
3.
var
a : integer;
begin
write('введите 6-и значное число: ');
readln(a);
if (a mod 10 = a div 100000) and ((a div 10) mod 10 = (a div 10000) mod 10) and ((a div 100) mod 10 = (a div 1000) mod 10) then writeln('палиндром') else writeln('нет');
end.
2000, 2016, 800
Объяснение:
a % b означает остаток от деления a на b.
a % b == 0 - проверка на то, что остаток равен нулю, то есть a делится на b.
a % b != 0 - проверка на то, что остаток не равен нулю, то есть a не делится на b.
or - логическое или, операция вернет истину, если хотя бы один из операндов истинен.
Собираем: (x % 4 == 0 and x % 100 != 0) or x % 400 == 0 истинно, если x делится на 4 и не делится на 100, или делится на 400.
2016 делится на 4 и не делится на 100, подходит.
2000 и 800 делятся на 400, подходят.