Код правильный, но расчет не закончен - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь решить проблему 3 с этого сайта https://projecteuler.net/problem=3, и это называется вот так: «Основные факторы 13195 - это 5, 7, 13 и 29. Какой самый большой главный факторномер 600851475143? «Почему, когда я пытаюсь запустить мой код с большими числами (больше, чем 1000000) - он печатается на экране? Как я могу решить эту проблему и решить эту задачу?

У меня есть некоторый правильный рабочий код, то есть работа с небольшим входным аргументом (например, 13195. Но когда я пытаюсь получить ответ с большим аргументом, например, 600851475143и запустите этот код, он напечатан nothng.


def is_it_prime(x): # function check: is it number a prime or not and return True or False?
    if x != 1: 
        i = int(x/2)
    else:
        i = 1 # x == 1 It is a simple case, where is argument - it is a prime number
    while i != 1:
        if x % i == 0: # This number isn't prime
            return False
        i -= 1
    return True # Done! We find largest prime number

def largest_prime(x): # function check argument on whole divide availible
    i = int(x/2)
    while True:
        if x % i == 0: # argument have whole divide
            if is_it_prime(i) == True:
                break
        i -=1
    return i # It is the largest prime factor


print(largest_prime(600851475143))
--------------------------------------------------------

>>>

1 Ответ

1 голос
/ 09 ноября 2019

** Как определить, является ли число простым

С помощью компьютера можно проверить чрезвычайно большие числа, чтобы определить, являются ли они простыми. Но поскольку нет предела тому, насколько большим может быть натуральное число, всегда есть точка, в которой тестирование таким образом становится слишком большой задачей даже для самых мощных суперкомпьютеров. **

https://whatis.techtarget.com/definition/prime-number

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...