Итак, у меня есть эти две задачи для домашнего задания, и я застрял на второй.
Используйте Python Set Component (Python эквивалент нотации Set Builder), чтобы сгенерировать набор всех простых чисел, меньших 100. Напомним, что простое число - это целое число, которое больше 1 и не делится ни на одно целое, кроме сам и 1. Сохраните ваш набор простых чисел в переменной (он понадобится вам для дополнительных частей). Выведите свой набор простых чисел (например, с помощью функции печати).
Используйте Python Set Computing для создания набора упорядоченных пар (кортежей длиной 2), состоящих из всех простых пар, состоящих из простых чисел меньше 100. Простая пара - это пара последовательных нечетных чисел, которые оба являются простыми числами. Сохраните свой набор простых пар в переменной. Ваш набор №1 будет очень кстати. Выведите свой Набор простых пар.
Для первого это отлично работает:
r= {x for x in range(2, 101)
if not any(x % y == 0 for y in range(2, x))}
Тем не менее, я очень озадачен вторым. Я думаю, что мне, возможно, придется взять декартово произведение множества r с чем-то, но я просто не уверен.
Это немного приближает меня, но мне нужны только последовательные пары.
cart = { (x, y) for x in r for y in r
if x < y }
источник
Вы можете генерировать такие пары:
{(x, x + 2) for x in r if x + 2 in r}
Затем все, что остается сделать, это получить условие, чтобы сделать их простыми, что вы уже сделали в первом примере.
Другой способ сделать это: (Хотя медленнее для больших наборов простых чисел)
{(x, y) for x in r for y in r if x + 2 == y}
источник
r
, поэтому{(x, x + 2) for x in r if x + 2 in r}
достаточно.and x % 2 == 1
не обязательно.