кодесурса
«Python

Python Math: печать первых n счастливых чисел

script1adsense2code
script1adsense3code

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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code