所以我有这两个问题要做家庭作业,而我被第二个问题困住了
-
使用Python集合理解(Python相当于集合生成器符号)生成一组小于100的所有素数。回想一下,素数是大于1的整数,不能被除自身和1之外的任何整数整除。将素数集存储在一个变量中(对于其他部分,您将需要它)。输出素数集(例如,使用打印功能)
-
使用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在素数中}
与其生成一对素数并对其进行测试,不如得到一对素数并查看是否存在相应的更高素数