Размещено 2 года назад по предмету
Информатика
от linkovasofiya
На питоне, 30 балов "Последовательность Хэмминга"
Если числа имеют среди делителей только 2, 3 и 5 в любой степени, то, расположенные по возрастанию, они образуют последовательность Хэмминга. Выведите n-е число последовательности.
Первые 10 чисел такие: 2, 3, 4, 5, 6, 8, 9, 10, 12, 15.
Пример Ввод Вывод 5 6
Я задачу решила но она не проходит по ограничению по времени (ограничение 1 секунда), Мой код: a = int(input()) i = 0 y = 0 while i != a: y += 1 x = y if x % 2 == 0: while x % 2 == 0: x = x / 2 if x % 3 == 0: while x % 3 == 0: x = x / 3 if x % 5 == 0: while x % 5 == 0: x = x / 5 if x == 1: i += 1
elif x % 3 == 1: while x % 3 == 0: x = x / 3 if x == 1: i += 1
elif x % 3 == 0: while x % 3 == 0: x = x / 3 if x == 1: i += 1
elif x == 1: i += 1
elif x % 5 == 0: while x % 5 == 0: x = x / 5 if x == 1: i += 1
elif x % 3 == 0: while x % 3 == 0: x = x / 3 if x % 5 == 0: while x % 5 == 0: x = x / 5 if x == 1: i += 1 elif x == 1: i += 1
elif x % 5 == 0: while x % 5 == 0: x = x / 5 if x == 1: i += 1 elif x == 1: i += 0 print(y)