Python集理解

所以我有这两个问题要做家庭作业,而我被第二个问题困住了

  1. 使用Python集合理解(Python相当于集合生成器符号)生成一组小于100的所有素数。回想一下,素数是大于1的整数,不能被除自身和1之外的任何整数整除。将素数集存储在一个变量中(对于其他部分,您将需要它)。输出素数集(例如,使用打印功能)

  2. 使用Python集合理解生成一组有序对(长度为2的元组),其中包含由小于100的素数组成的所有素数对。素数对是一对连续的奇数,它们都是素数。将素数对集存储在变量中。你的数字1将非常有用。输出素数对集

对于第一个,这非常有效:

r={x代表范围内的x(2101)
如果没有(x%y==0,对于范围(2,x))中的y)

然而,我在第二个问题上被难住了。我想我可能需要把集合r的笛卡尔积和一些东西结合起来,但我不确定

这让我有点接近,但我只想要连续的一对

cart={(x,y)代表r中的x代表r中的y
如果x<y}
primes={x代表范围(22101)中的x,如果全部(x%y代表范围(2,min(x,11))中的y)}

我将测试简化了一点-如果全部(x%y而不是如果没有(不是x%y

我还限制了y的范围;测试除数>sqrt(x)没有意义。因此max(x)==100意味着max(y)==10。对于x<=10,y也必须是<x

pairs={(x,x+2)如果x+2在素数中}

与其生成一对素数并对其进行测试,不如得到一对素数并查看是否存在相应的更高素数

发表评论