В примере ответы не соответствуют заданию: ищется самая большая цифра а не маленькая, а по условию должна искаться самая маленькая. Написал код, который соответствует именно заданию:
Представим таблицу в виде: (см. Рис. 1) Получаем уравнение 8 + b1 + 4 = 2*b1 + (b1+2) + 4 Отсюда: b1 = 3. Получаем (см. Рис. 2)
Далее, заметим, что сумма по горизонтали и по диагонали равна 15. Заполняем таблицу (см. Рис. 3)
ответ: С2 = 9
Решение 2.
Заданным свойством (иметь одинаковую сумму по горизонталям, вертикалям и диагоналям) обладает единственный МАГИЧЕСКИЙ КВАДРАТ (не учитывая его повороты и отражения относительно осей). Это магический квадрат 3х3 с магической суммой 15 (см. Рис. 4)
Если дальше завершить программу, то получим это: 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
В примере ответы не соответствуют заданию: ищется самая большая цифра а не маленькая, а по условию должна искаться самая маленькая. Написал код, который соответствует именно заданию:
Объяснение:
var
n, k, min, colmin, i: integer;
begin
repeat
Write('Введите число: ');
Readln(n);
until (n>=10000) and (n<=99999);
k := n;
min := k mod 10;
k := k div 10;
for i := 1 to 4 do
begin
if (k mod 10 < min) then min := k mod 10;
k := k div 10;
end;
k := n;
for i := 1 to 5 do
begin
if (k mod 10 = min) then inc(colmin);
k := k div 10;
end;
WriteLn(min, ' ', colmin);
end.