Кто всё решит,
1) Два узла, находящиеся в разных подсетях, имеют IP-адреса 45.218.13.76 и
45.218.13.55. В масках обеих подсетей одинаковое количество единиц. Укажите
наименьшее возможное количество единиц в масках этих подсетей.
2) Два узла, находящиеся в разных подсетях, имеют IP-адреса 145.207.153.178 и
145.207.153.165. В масках обеих подсетей одинаковое количество единиц. Укажите
наименьшее возможное количество единиц в масках этих подсетей.
3) Для узла c IP-адресом 115.53.128.88 адрес подсети равен 115.53.128.0. Сколько
существует различных возможных значений третьего слева байта маски, если
известно, что в этой сети не менее 1000 узлов? ответ запишите в виде десятичного
числа
{ Проверка, является ли число простым }
var
p:integer;
found:Boolean;
begin
found:= (n mod 2 = 0);
p:=3;
while (not found) and (sqr(p)<=n) do
begin
found:=(n mod p = 0);
p:=p+2
end;
IsPrime:=(not found) or (p = 2)
end;
const
m1 = 20;
n1 = 20;
var
a: array[1..m1, 1..n1] of integer;
s,k:array[1..n1] of integer;
i, j, m, n, sum, kol: integer;
begin
Write('Введите через пробел число строк и столбцов массива: ');
Readln(m, n);
Randomize;
Writeln(#13#10, 'Исходный массив');
for i := 1 to m do
begin
for j := 1 to n do
begin
a[i,j]:= Random(99)+1;
Write(a[i,j]:3)
end;
Writeln
end;
for j:=1 to n do
begin
sum:=0; kol:=0;
for i:=1 to m do
if IsPrime(a[i,j]) then
begin sum:=sum+a[i,j]; kol:=kol+1 end;
s[j]:=sum; k[j]:=kol
end;
Writeln('*** Сумма простых элементов по столбцам ***');
for j:=1 to n do Write(s[j]:4);
Writeln;
Writeln('*** Количество простых элементов по столбцам ***');
for j:=1 to n do Write(k[j]:4);
Writeln
end.
Тестовое решение:
Введите через пробел число строк и столбцов массива: 12 15
Исходный массив
36 74 72 75 25 58 26 45 25 51 35 83 34 8 99
53 55 3 51 31 7 65 91 99 95 40 91 86 80 39
61 5 92 50 28 40 7 93 46 46 20 2 61 45 91
85 10 47 49 54 29 15 10 49 13 70 83 73 79 85
67 40 65 85 90 31 90 83 80 59 46 61 57 5 12
6 4 46 9 10 30 44 37 27 11 46 94 44 38 57
57 34 14 61 79 80 37 75 55 60 94 27 67 90 8
67 58 5 37 7 67 37 64 69 55 24 3 38 75 44
36 47 46 23 2 12 47 96 26 31 69 28 91 49 16
4 76 47 19 43 88 89 7 31 90 21 69 45 6 55
78 98 1 11 24 48 80 44 88 96 21 61 79 7 38
39 46 16 54 52 47 55 20 33 56 46 40 16 33 81
*** Сумма простых элементов по столбцам ***
248 52 103 151 160 181 217 127 31 114 0 291 280 91 0
*** Количество простых элементов по столбцам ***
4 2 5 5 4 5 5 3 1 4 0 5 4 3 0
begin
read(n);
copy_of_n := n;
amount := 0;
max_digit := copy_of_n mod 10;
while copy_of_n <> 0 do
begin {Находим наибольшую цифру в числе}
if max_digit < copy_of_n mod 10
then
max_digit := copy_of_n mod 10;
copy_of_n := copy_of_n div 10;
end;
copy_of_n := n;
while copy_of_n <> 0 do {Считаем количество таких цифр}
begin
if copy_of_n mod 10 = max_digit
then
amount := amount + 1;
copy_of_n := copy_of_n div 10;
end;
writeln(amount);
end.