Python Math: печать первых n счастливых чисел
Python Math: Упражнение 17 с решением
Напишите программу на Python для печати первых n счастливых чисел.
Счастливые числа определяются через сито следующим образом.
Начните со списка целых чисел, начинающихся с 1:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, , , , ,
Теперь исключите каждый второй номер:
1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, ...
Второе оставшееся число - 3, поэтому удалите каждое третье число:
1, 3, 7, 9, 13, 15, 19, 21, 25, ...
Следующее оставшееся число - 7, поэтому удалите каждое седьмое число:
1, 3, 7, 9, 13, 15, 21, 25, ...
Далее убираем каждый 9-й номер и так далее.
Наконец, полученная последовательность - счастливые числа.
Следующая анимация демонстрирует счастливое число сито. Цифры в красном являются счастливыми числами.
Кредиты на анимацию: Кельтский Менестрель
Пример решения : -
Код Python:
n=int(input("Input a Number: "))
List=range(-1,n*n+9,2)
i=2
while List[i:]:List=sorted(set(List)-set(List[List[i]::List[i]]));i+=1
print(List[1:n+1])
Пример вывода:
Введите число: 10 [1, 3, 7, 9, 13, 15, 21, 25, 31, 33]
Блок - схема:
Визуализируйте выполнение кода Python:
Следующий инструмент визуализирует, что компьютер делает шаг за шагом при выполнении указанной программы:
Редактор кода Python:
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Предыдущий: Напишите программу на Python для печати всех перестановок данной строки (включая дубликаты).
Далее: Напишите программу на Python для вычисления квадратных корней с помощью вавилонского метода.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования