Python: поиск простых множителейPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python: поиск простых множителей

Сообщение Anonymous »

Вопрос из двух частей:
  • Пытаясь определить наибольший простой множитель числа 600851475143, я нашел в Интернете программу, которая, похоже, работает. Проблема в том, что мне трудно понять, как именно это работает, хотя я понимаю основы того, что делает программа. Кроме того, мне бы хотелось, чтобы вы пролили немного света на любой известный вам метод поиска простых множителей, возможно, без проверки каждого числа, и на то, как работает ваш метод.
Вот код, который я нашел в Интернете для факторизации простых чисел [ПРИМЕЧАНИЕ. Этот код неверен. См. ответ Стефана ниже для лучшего кода.]:
n = 600851475143
i = 2
while i * i < n:
while n % i == 0:
n = n / i
i = i + 1

print(n)

#takes about ~0.01secs
  • Почему этот код намного быстрее, чем этот код, который предназначен только для проверки скорости и не имеет никакой другой реальной цели?
i = 1
while i < 100:
i += 1
#takes about ~3secs


Подробнее здесь: https://stackoverflow.com/questions/153 ... me-factors
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»