[x for x in range(1,100) if all(x%y for y in range(2,x))]
Не в состоянии понять, как приведенный выше код возвращает правильные результаты. Вместо этого должно быть
[x for x in range(1,100) if all(x%y!=0 for y in range(2,x))]
Причина в том, что все равно True
, если только одно из условий равно True
.