Логика игры
Есть игровое поле — простой прямоугольник с твёрдыми границами. Когда шарик касается стенки или потолка, он отскакивает в другую сторону. Если он упадёт на пол — вы проиграли. Чтобы этого не случилось, внизу вдоль пола летает платформа, а вы ей управляете с щью стрелок. Ваша задача — подставлять платформу под шарик как можно дольше. За каждое удачное спасение шарика вы получаете одно очко.
Алгоритм
Чтобы реализовать такую логику игры, нужно предусмотреть такие сценарии поведения:
игра начинается;
шарик начинает двигаться;
если нажаты стрелки влево или вправо — двигаем платформу;
если шарик коснулся стенок, потолка или платформы — делаем отскок;
если шарик коснулся платформы — увеличиваем счёт на единицу;
если шарик упал на пол — выводим сообщение и заканчиваем игру.
Хитрость в том, что всё это происходит параллельно и независимо друг от друга. То есть пока шарик летает, мы вполне можем двигать платформу, а можем и оставить её на месте. И когда шарик отскакивает от стен, это тоже не мешает другим объектам двигаться и взаимодействовать между собой.
import array
spisok = array.array('I') # Массив положительных чисел.
for i in range(int(input())):
if not len([0 for z in range(1, i + 1) if not i % z]) % 2: spisok.append(i)
# not len(...) % 2 тоже что и len(...) % 2 == 0, но быстрее в 2 раза.
# [0 for z in ...] поскольку z нам не нужен, нам нужна лишь длина, я заменил его 0-ом.
print(len(spisok))
Или
Есть , ускорить код в 20 раз, cython.
from cpython.array cimport array
n = int(input()) + 1
spisok = array('I')
cdef unsigned int i, z
for i in range(n):
if not len([0 for z in range(1, i + 1) if not i % z]) % 2: spisok.append(i)
print(len(spisok))
Сохранишь этот код в файл с расширением pyx (например my_file.pyx)
В консоли введёшь команду:
pip install cython # библиотека
cythonize -i my_file.pyx || py -m cythonize -i main.pyx
И создай любой .py файл, добавь туда import того файла:
import my_file