Для Python:
def UnitsConversion():
n = int(input("Введите число для конвертации: "))
rule = str(input("Нажмите 1, чтобы конвертировать в килобайты и 2, \
чтобы конвертировать в гигабайты: "))
if rule == "1":
m = n*1024
print(m)
else:
m = n/1024
print(m)
Объяснение:
1)Объявляем функцию UnitsConversion (можно назвать как угодно, без параметров в данном случае);
2)Ждем ввода пользователя при и сразу же конвертируем ввод в число при чтобы Питон мог совершать над ним мат. операции;
3)Спрашиваем, что нужно сделать: перемножить или поделить. В качестве ответа ждем строку, состоящую из "1" или "2", конвертируется ввод в строку при Если не использовать str(), то по умолчанию input() всегда будет строкой, но чтобы не путаться в данном примере, я использовал str().
4)Проверяем условия: если ввод был 1, то m будет произведение чисел, если не 1, то деление чисел, и также вывод ответа с
Пояснення:В качестве кандидатов нужно рассматривать числа, не превышающие
(
S
−
1
)
2
, так как в худшем случае составное число вида
x
2
будет иметь два наибольших делителя
x
и 1. Время работы этого алгоритма
O
(
S
4
)
. Можно существенно ускорить вычисления, если учесть, что при поиске разложения на множители числа
N
можно рассмотреть только числа не превышающие
√
N
. Наибольшим делителем числа
N
будет
N
a
, где
a
– наименьший делитель, а вторым наибольшим делителем будет либо
N
b
, где
b
– второй по величине делитель
N
(также либо число, либо
a
2
), либо
a
, если
N
является произведением двух различных чисел, либо 1, если
N
=
a
2
.