Код для поиска простых чисел:
def findPrimes(n):
prime_list = list()
for number in range(1, n + 1):
prime = True
for i in range(2, number):
if(number % i == 0):
prime = False
if prime:
prime_list.append(number)
return prime_list
Код для аккуратного составления списка простых чисел:
def displayPrimes(number, rows = 50):
table_list = [[] for _ in range(rows)]
primes = findPrimes(number)
for index, item in enumerate(primes):
row_index = index % rows
table_list[row_index].append("%6d" % item)
table_str = "\n".join(["\t".join(i) for i in table_list])
return table_str
print(displayPrimes(4027))
Код для поиска одинарных простых чисел:
def findTwinPrimes(n):
prime = [True for i in range(n + 2)]
p = 2
while (p * p <= n + 1):
# If prime[p] is not changed,
# then it is a prime
if (prime[p] == True):
# Update all multiples of p
for i in range(p * 2, n + 2, p):
prime[i] = False
p += 1
# check twin prime numbers
# display the twin prime numbers
for p in range(2, n-1):
if prime[p] and prime[p + 2]:
print("(",p,",", (p + 2), ")" ,end='')
print(findTwinPrimes(4027))
Код длязаставляя двойные простые числа отображаться аккуратно.Проблема в том, что он говорит:
TypeError: объект 'function' не повторяется
Это не сработает, поскольку у меня есть те же данные в коде, который используется для отображения простых чиселэто просто отображение списка аккуратно?
def displayTwinPrimes(number, rows = 52):
table_list = [[] for _ in range(rows)]
twinPrimes = findTwinPrimes
for index, item in enumerate(twinPrimes):
row_index = index % rows
table_list[row_index].append("%6d" % item)
table_str = "\n".join(["\t".join(i) for i in table_list])
return table_str
print(displayTwinPrimes(4027))