Хосспаде иегове, да научитесь же вы язык указывать! perl. 2. @array; #формат ввода не задан, будем считать что он уже заполнен. $min = $array[0]; $max = $array[0]; for $i (@array) { $min = $i if ($i < $min); $max = $i if ($i > $min); } %hash = map {$_ => 1} @array; for $i in ($min..$max) { print "$i " if $hash{$i})); } 3. use quantum: : superpositions; #модуль для квантовых вычислений, жутко удобная штука. @primes; $n = < > ; push @primes, ($i) if ($i % all(2..sqrt($i)+1) ! = 0) i for $i (2..$n); #ответ в массиве @primes. 4. на этот вопрос я не так давно отвечал, ну ладно. $n = < > ; @multipliers; for $i (2..$n) { if $n % $i)) { push @multipliers, ($i); $n /= i; } } #ответ в массиве @multipliers. а теперь укажите-таки язык и я, если с этим языком знаком напишу нормальный, не извращённый ответ.
lukur2005
06.02.2021
Два , дисклеймера, так сказать. 1) алгоритм простой как пробка. я практически уверен что можно быстрее. 2) язык не указан, хорошо бы использовать c, но в c всегда было весело с динамическими массивами, так что perl. если что — переведёте, perl неплохо читается. use strict; my @array; my $num = < > ; #input for (my $i = 2; $num > 1; $i++) { if $num % $i)) { push @array, ($i); $num /= i; } } результат лежит в массиве @array.