Объяснение:
Поскольку объем сжатого файла составляет 50% (т.е. половину) исходного, то выигрыш от архивации в объеме составляет 40/2 = 20 Мбайт. А проигрыш во времени из-за архивации составляет 10+2 = 12с.
Найдем выигрыш во времени от того, что 20 Мб не нужно передавать.
20 Мбайт = 20×2²⁰ байт = 20×8×2²⁰ бит. При скорости передачи данных, равной 2²⁰ бит/с, такой объем будет передан за (20×8×2²⁰)/2²⁰ = 160с.
Итого, при А мы выигрываем 160с и проигрываем 12с. Следовательно А выгоднее на 160-12 = 148с
Так как язык не указан, приведу пример на SWI-Prolog.
Код:
read_int(Int) :- read(Int), integer(Int).split_int_by_numbers(0, []) :- !.split_int_by_numbers(N, [Number|Ints]) :- Number is mod(N, 10), RestN is div(N, 10), split_int_by_numbers(RestN, Ints).test_to_div(_, []).test_to_div(N, [Number|Ints]) :- mod(N, Number) =:= 0, test_to_div(N, Ints). test(Int) :- split_int_by_numbers(Int, Numbers), test_to_div(Int, Numbers), write(Int), write(" - Yes!"), nl.test(Int) :- write(Int), write(" - No!"), nl.?- read_int(Int), test(Int).