|
23 / 20 / 4
Регистрация: 15.12.2018
Сообщений: 152
|
|
Разложить на множители целое число24.04.2019, 20:05. Показов 1294. Ответов 14
Метки нет (Все метки)
Вот стоит задача разложить на множители целое число порядка 10^35. Понятное дело, раскладывать полупростые числа, сравнимые с 4096-битными модулями алгоритма RSA бессмысленная затея. А при такой малой длине числа оно должно раскладываться за секунды, но перебор делителей, пусть даже и грамотный, может растянуться очень надолго. Может кто-нить сведущий в этом деле дать реализацию подобного?
0
|
|
| 24.04.2019, 20:05 | |
|
Ответы с готовыми решениями:
14
Разложить число на простые множители в порядке возрастания
|
|
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
|
||||||
| 24.04.2019, 20:42 | ||||||
|
Когда числа большие - используйте BigInteger:
2
|
||||||
|
23 / 20 / 4
Регистрация: 15.12.2018
Сообщений: 152
|
||
| 25.04.2019, 20:20 [ТС] | ||
|
Sun Serega, видимо вы просто не поняли суть задачи. В вашем коде видно кусок
133718594692174446543141087498089741 ? Мне нужен именно код, который позволит раскладывать за адекватное время числа таких порядков, при этом я понимаю, что есть такая вещь как RSA-шифрование и я НЕ прошу дать мне код, который разложит RSA-2048
0
|
||
|
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
|
||
| 25.04.2019, 20:27 | ||
|
1
|
||
|
23 / 20 / 4
Регистрация: 15.12.2018
Сообщений: 152
|
|||
| 25.04.2019, 20:47 [ТС] | |||
|
Хотя я вообще слабо представляю зачем он вам нужен, там ведь и намека нету на разложение - в режиме генерации только тест простоты - он полиноминальный и ничего общего с разложением не имеет, а в самой реализации RSA шифрования - возведение в степень по модулю + всякая практикорелизовская хрень типа OAEP.
0
|
|||
|
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
|
||||||||||
| 25.04.2019, 21:35 | ||||||||||
Я имел в виду - объясните на пальцах следующее: 1. Как алгоритм шифрования полезен в раскладывании числа на множители? 2. Чем отличается А я пока почитаю умные букафы на странице вики которую вы скинули)) Добавлено через 27 минут P.S. прочитал вроде всё что надо с той страницы что вы кинули и около неё. Значит для 12 вам нужно вывести 2 и 3, из которых так же легко вычисляются 4 и 6, так? И, вы кинули ссыль на статью про шифрование, а вам вроде тут нужен алгоритм взлома. Если так - скиньте что то про его реализацию. Так же, как я понимаю - алгоритм будет легко распаралелевающийся? Если да - это вообще офигенно, ибо я как раз хотел потренироваться в OpenCL (библиотека для работы с GPU), а то у меня пока куча теоретических и базовые практические знания.
1
|
||||||||||
|
23 / 20 / 4
Регистрация: 15.12.2018
Сообщений: 152
|
||||||
| 26.04.2019, 17:02 [ТС] | ||||||
|
Самих этих алгоритмов тьма: Метод_квадратичных_форм_Шенкса Ро-алгоритм_Полларда Факторизация_с_помощью_эллиптических_кривых Метод_квадратичного_решета Общий_метод_решета_числового_поля
0
|
||||||
|
Alvin Seville
|
|||||||
| 26.04.2019, 17:14 | |||||||
Давайте выражаться культурно... Вы не в пивном баре.
0
|
|||||||
|
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
|
||
| 26.04.2019, 17:26 | ||
|
Ну, я уже почти доделал код перебирающий именно делители а не множители, то есть для 12 - 2 и 3, а для, к примеру 16 - 2 и 4. С другой стороны, из делителей можно легко отсеять простые числа, готовым хашсетом, а распаралелить именно нахождение множителей а не делителей будет проблематично (по крайней мере мой алгоритм из кода выше, его self := self div i; будет требовать синхронизации, которую я хз как устроить).
1
|
||
|
23 / 20 / 4
Регистрация: 15.12.2018
Сообщений: 152
|
|||||
| 26.04.2019, 19:26 [ТС] | |||||
Добавлено через 1 минуту
1
|
|||||
|
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
|
|||
| 26.04.2019, 19:57 | |||
|
Делители это все числа на которые данное число делится без остатка.
1
|
|||
|
23 / 20 / 4
Регистрация: 15.12.2018
Сообщений: 152
|
|||
| 27.04.2019, 16:23 [ТС] | |||
|
0
|
|||
|
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
|
|||||||||||
| 30.04.2019, 14:02 | |||||||||||
|
Ну, что то да есть:
0.pas:
Пока что .cl программа компилируется, но не запускается, пишет "не хватило ресурсов". Но алгоритм есть, его уже можно обсудить. Прошу обратить внимание, что он велосипедный, из готовых, вот к примеру что то: https://stackoverflow.com/a/36524213/9618919 И, я немного передохну от написания вот этого всего, вы пока могли бы попробовать сами узнать в чём причина той ошибки. Просто убирайте рандомные куски из .cl программы, пока не заработает. Так большинство багов и ищется, когда вообще не представляешь что может быть причиной. Хотя у меня идея есть, что в .cl программе выделялось слишком много памяти на статичные массивы. Считая что work item-ом 256*256*256 - это вполне могло стать проблемой. Но проверю я это как то потом, а для начала отдохну)) Ну и, хоть я отдыхаю - я всё ещё могу ответить на любые вопросы по алгоритму.
2
|
|||||||||||
|
23 / 20 / 4
Регистрация: 15.12.2018
Сообщений: 152
|
|||||
| 30.04.2019, 17:29 [ТС] | |||||
|
Ого, мощно. Попробую что-то понять. Правда код для OpenCL никогда в жизни не учил, но думаю ничего там сверхсложного нету.
Взломать детский шифр за копейку готовы удавиться, правда хоть честно написали
А пока буду разбираться в вашем коде.
0
|
|||||
|
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
|
||
| 30.04.2019, 17:37 | ||
|
https://www.khronos.org/regist... man/xhtml/ Там и спецификацию языка, и все external функции что я вызывал найдёте.
0
|
||
| 30.04.2019, 17:37 | |
|
Помогаю со студенческими работами здесь
15
Разложить число на простые множители Разложить число на простые множители
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|