var x: array[1..m, 1..n] of integer; i, j, a, b, k: integer;
begin write('Введите числа a,b: '); readln(a, b); Randomize; writeln(#13#10, 'Исходный массив'); for i := 1 to m do begin for j := 1 to n do begin x[i, j] := Random(100) - 50; write(x[i, j]:5) end; writeln end; writeln('Количество элементов матрицы, кратных ', a); for j := 1 to n do begin k := 0; for i := 1 to m do if x[i, j] mod a = 0 then k := k + 1; write(k:5) end; writeln; writeln('Количество элементов матрицы, кратных ', b); for j := 1 to n do begin k := 0; for i := 1 to m do if x[i, j] mod b = 0 then k := k + 1; write(k:5) end; writeln end.
Наивные - загадываем число. Прибавляем к нему 7. Отнимаем загаданное число. x + 7 - x = 7 - загадываем число. Умножаем его на 7. Делим на загаданное число (не сработает для нуля) x * 7 / x = 7
Можно немного это замаскировать: - загадываем число. Умножаем его на 15873. Прибавляем 111111. Делим на 15873. отнимаем загаданное число. (15873x + 111111)/15873 - x = 7
Можно использовать какой-нибудь фокус, например, складывание сумм цифр до тех пор, пока не получится одно число (т.н. "числовой корень", пример: 255 -> 2 + 5 + 5 = 12 -> 1 + 2 = 3) - загадываем натуральное число. Умножаем на 9, находим числовой корень. Отнимаем 2. Разгадка в том, что числовой корень любого числа, делящегося на 9 и не равного нулю, равен 9.
Маскировка: - загадываем натуральное число. Умножаем на 777 и находим числовой корень. Потом на 666 и находим числовой корень. Прибавляем к результату 666. Находим сумму кубов цифр результата. И еще раз. Смотрим на число сотен результата. 666 делится на 9, так что числовой корень числа (666 * что-то) равен 9. 666 + 9 = 675. 6^3 + 7^3 +5^3 = 684. 6^3 + 8^3 + 4^3 = 792
Наивные - загадываем число. Прибавляем к нему 7. Отнимаем загаданное число. x + 7 - x = 7 - загадываем число. Умножаем его на 7. Делим на загаданное число (не сработает для нуля) x * 7 / x = 7
Можно немного это замаскировать: - загадываем число. Умножаем его на 15873. Прибавляем 111111. Делим на 15873. отнимаем загаданное число. (15873x + 111111)/15873 - x = 7
Можно использовать какой-нибудь фокус, например, складывание сумм цифр до тех пор, пока не получится одно число (т.н. "числовой корень", пример: 255 -> 2 + 5 + 5 = 12 -> 1 + 2 = 3) - загадываем натуральное число. Умножаем на 9, находим числовой корень. Отнимаем 2. Разгадка в том, что числовой корень любого числа, делящегося на 9 и не равного нулю, равен 9.
Маскировка: - загадываем натуральное число. Умножаем на 777 и находим числовой корень. Потом на 666 и находим числовой корень. Прибавляем к результату 666. Находим сумму кубов цифр результата. И еще раз. Смотрим на число сотен результата. 666 делится на 9, так что числовой корень числа (666 * что-то) равен 9. 666 + 9 = 675. 6^3 + 7^3 +5^3 = 684. 6^3 + 8^3 + 4^3 = 792
m = 5;
n = 8;
var
x: array[1..m, 1..n] of integer;
i, j, a, b, k: integer;
begin
write('Введите числа a,b: ');
readln(a, b);
Randomize;
writeln(#13#10, 'Исходный массив');
for i := 1 to m do
begin
for j := 1 to n do
begin
x[i, j] := Random(100) - 50;
write(x[i, j]:5)
end;
writeln
end;
writeln('Количество элементов матрицы, кратных ', a);
for j := 1 to n do
begin
k := 0;
for i := 1 to m do
if x[i, j] mod a = 0 then k := k + 1;
write(k:5)
end;
writeln;
writeln('Количество элементов матрицы, кратных ', b);
for j := 1 to n do
begin
k := 0;
for i := 1 to m do
if x[i, j] mod b = 0 then k := k + 1;
write(k:5)
end;
writeln
end.
Тестовое решение:
Введите числа a,b: 4 7
Исходный массив
-16 3 26 4 46 -6 -31 21
-35 -34 46 42 15 -26 -9 4
-19 -47 8 -48 13 14 42 -46
41 -10 13 45 -20 15 13 -44
18 -11 23 -30 44 -36 -8 -42
Количество элементов матрицы, кратных 4
1 0 1 2 2 1 1 2
Количество элементов матрицы, кратных 7
1 0 0 1 0 1 1 2