Я моделирую свою криптографическую схему в Python, я новый пользователь для нее.
p = 512-битное число, и мне нужно рассчитать наибольший простой множитель для него, я ищу две вещи:
- Самый быстрый код для обработки этой большой простой факторизации
- Код, который может принимать 512 бит числа в качестве ввода и может обрабатывать его.
Я видел разные реализации на других языках, весь мой код написан на python, и это последний момент, когда я застрял. Итак, дайте мне знать, если есть какая-либо реализация в Python.
Пожалуйста, объясните в простой, как я новый пользователь Python
извините за плохой английский.
edit (взято из ответа ОП ниже):
#!/usr/bin/env python
def highest_prime_factor(n):
if isprime(n):
return n
for x in xrange(2,n ** 0.5 + 1):
if not n % x:
return highest_prime_factor(n/x)
def isprime(n):
for x in xrange(2,n ** 0.5 + 1):
if not n % x:
return False
return True
if __name__ == "__main__":
import time
start = time.time()
print highest_prime_factor(1238162376372637826)
print time.time() - start
Приведенный выше код работает (с небольшой задержкой) для "1238162376372637826", но
расширяя его до
10902610991329142436630551158108608965062811746392
57767545600484549911304430471090261099132914243663
05511581086089650628117463925776754560048454991130443047
заставляет питона сходить с ума. Есть ли способ, чтобы, как и выше, я могу иметь это
посчитали в кратчайшие сроки?