Задание 1. Оцените временную сложность алгоритма вычисления факториала (произведения) целого положительного числа. Значение x вводится с клавиатуры.
Program gg;
var m, i, x,f: Integer;
begin
m:=1;
readln(x);
for i:=2 to x do
m:=m*i;
F:=m;
writeln(f);
end.
152(10) = 10011000(2)
157(10) = 10011101(2)
Запишем их друг под другом
10011000
10011101
Нам нужен наибольший байт маски. В маске под единицами записывается адрес сети, под нулями - номер хоста. Адрес сети у этих адресов одинаковый, то есть для поиска наибольшего байта маски мы можем байты разделить так
10011 000
10011 101
Первые пять разрядов - это окончание адреса сети, последние три - начало хоста. Хосту в маске подсети соответствуют нули, адресу сети - единицы, получается, что наибольший байт маски равен
10011 000
10011 101
11111 000 - маска
11111000(2) = 248(10)