我现在正在做一个程序,它的目标是以某种方式分析双素数(双素数是以(p,p+2)的形式存在的素数)。现在我有一个代码,它以%10的形式计算双素数余数。在
这是密码:
def twin_prime_counter_type10(n):
not_prime = []
prime = []
A = range(n + 1)
B = range(n + 1)
for i in xrange(2, n+1):
if i not in not_prime:
prime.append(i)
for j in xrange(i*i, n+1, i):
not_prime.append(j)
for n,i in enumerate(prime):
if not A[n] == prime[n]:
A[i] = 1
count1_3 = 0
count7_9 = 0
count9_1 = 0
for i in B:
if B[i] % 10 == 3 and B[i - 2] % 10 == 1:
if A[i] * A[i-2] == 1:
count1_3 += 1
elif B[i] % 10 == 9 and B[i - 2] % 10 == 7:
if A[i] * A[i-2] == 1:
count7_9 += 1
elif B[i] % 10 == 1 and B[i - 2] % 10 == 9:
if A[i] * A[i-2] == 1:
count9_1 += 1
print count1_3
print count7_9
print count9_1
印刷筛(万)
这部分代码工作得很好,但我想知道有没有人知道一种方法,当我找到(1)对(孪生素数)时,我也可以记录它们在列表中出现的顺序。我不需要任何人来实际编写执行此任务的代码,我只想问是否有人知道python中的一个内置工具,我可以用它来完成这项任务。在
谢谢你的帮助。在
假设} 配方来获得带有生成器表达式的孪生素数
sieve
是Sieve of Eratosthenes,或者similar,那么您可以使用itertools模块中的^{例如
^{2}$同样地,您可以将它与enumerate一起使用,以获得与素数列表相关的对中第一个素数的索引
相关问题 更多 >
编程相关推荐