Я пытаюсь найти простой делитель числа 705561475143.
В моем коде функция primeFactor()
ищет все множители в некотором целом числе, подставляет их в функцию Prime()
, которая либо меняет число на 0, либо не меняет его вообще. Если число не изменилось на 0, это простое число, которое следует добавить в список.
import math
def Prime(n):
isPrime = False
r = range(2, int(math.sqrt(n)+5))
a = 1
for b in r:
if r[a] >= int(math.sqrt(n)+2):
break
elif n % r[a] != 0:
a += 1
elif n % r[a] == 0 & n != r[a] & n != 1:
n = 0
break
def primeFactor(m):
l = []
for x in range(1, m+1):
if m % x == 0:
if Prime(m) != 0:
l.append(x)
print(l)
Однако, когда я ввожу
> primeFactor(36)
я получил
> [1,2,3,4,6,9,12,18,36]
Вместо
> [2,3]
И когда я ввожу
> primeFactor(705561475143)
Код не может дать мне ответ.