|
Новое решето для определения простых чисел?
|
|||
---|---|---|---|
#18+
Я специально поставил знак вопроса в названии топика, потому что не уверен, что представленные ниже формулы уже не применялись при поиске простых чисел. Как известно, лучший метод поиска простых чисел – это решето Эратосфена. Однако он медленный, и у него есть недостаток – идут повторы вычисления составных чисел. Например, 49 и 11 и 7 и 77. Причём, чем дальше – тем повторы увеличиваются в некоторой прогрессии, может быть, геометрической. Предлагается новый метод (решето), когда составные числа вычисляются с помощью нескольких последовательных формул. При этом практически нет повторений. На диапазоне от 1 до 300 были получены все составные числа вида 6хК+-1. Единственное повторение - 175 (разбираюсь). Данный метод включает в себя несколько последовательных формул, которые будут иметь определённые ограничения, чтобы работать в диапазоне 6хК+-1. В противном случае, при определённой доработке, данные формулы могут определять все числа числового ряда (это моё предположение, данный случай пока не рассматривал). 1. Первая формула, это Р = А^2, где А >=5 для А из диапазона 6хК+-1 Эту формулу, конечно, применяли при определении составных чисел. Но эта формула мне нужна для дополнения других формул. 2. Вторая формула, это функция двух переменных 21844035 Р = (2*А)^2 - (1+2*B)^2 , А- целое, А>0, В - целое, В>= 0. Или Р = (2*А+1+2*В)*(2*А-1-2*В) кому как нравится. Всё зависит от того, какая из этих операций быстрее работает на компьютере. В данном случае есть основное ограничение: 2*А > 1 + 2*В В следующем сообщении попробую дать ограничения для формулы 2, чтобы высчитывать только величины 6хК+-1. Будет ещё одна формула, пока дорабатывается. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2019, 16:44 |
|
Новое решето для определения простых чисел?
|
|||
---|---|---|---|
#18+
Рассмотрим формулу Р = (2*А)^2 - (1+2*B)^2 Расчет по такой формуле идет следующим образом: для одного В вычисляются Р для всех возможных А таких, что Р =< М (граница диапазона от 1). Если В=1, то чтобы получать числа величиной 6хК+-1, необходимо следующее условие: А = 1+ 3*а, где а – целое число, а>=1. и А = 2+ 3*а, где а – целое число, а>=1. В данной «колонке» происходит перемножение последовательных чисел из 6хК+-1 через одного: 5 и 11, 7 и 13, 11 и 17, 13 и 19, 17 и 23, и т.д. Если В=4, то чтобы получать числа величиной 6хК+-1, необходимо следующее условие: А = 1+ 3+3*а, где а – целое число, а>=1. и А = 2+ 3 +3*а, где а – целое число, а>=1. В данной «колонке» происходит перемножение последовательных чисел из 6хК+-1 : 5 и 23, 7 и 25, 11 и 29, 13 и 31, 17 и 35, и т.д. Тогда если (В-1) кратно 3, то, чтобы получать числа величиной 6хК+-1, необходимо следующее условие: А = В+3*а, где а – целое число, а>=1. и А = В+1+3*а, где а – целое число, а>=1. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2019, 07:36 |
|
Новое решето для определения простых чисел?
|
|||
---|---|---|---|
#18+
Дальнейшее изучение формулы 21845651 показало, что по сравнению с обычным решетом Эратосфена, при использовании этой формулы нет ничего нового. Всё те же повторы. Однако у данной формулы есть преимущество: с помощью данной формулы 21845651 определяются только нечётные числа. Что помогает в решении задачи поиска простых чисел. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 06:35 |
|
Новое решето для определения простых чисел?
|
|||
---|---|---|---|
#18+
Gennadiy Usov с помощью данной формулы 21845651 определяются только нечётные числа. Для этого есть методы, которые на порядок проще предложенной предложенной формулы (а то и на два порядка). ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 13:51 |
|
Новое решето для определения простых чисел?
|
|||
---|---|---|---|
#18+
В сообщении 21845255 говорилось о том, что будет ещё одна формула определения составных чисел. Есть формула Р= х*у. Можно эту формулу несколько переделать: 3*Р=х*(3*y). Получается, что с помощью умножения на число (3) можно получить дополнительные составные числа. Данную формулу можно расширить: m*n*P = (m*x)*(n*y) Таким образом, за счет чисел m и n можно создать множество составных чисел. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2019, 13:21 |
|
Новое решето для определения простых чисел?
|
|||
---|---|---|---|
#18+
Теперь можно будет строить решето (метод) для определения составных чисел на некотором диапазоне от N1 до N2. Данный метод заключается в последовательном поиске составных чисел среди нечётных чисел на диапазоне от N1 до N2. Сначала необходимо на данном диапазоне исключить составные числа, которые получаются при умножении некоторых чисел на мелкие простые числа: 3, 5, 7, 11, 13, … К, где Л – последнее простое число, для которого имеет смысл проводить эту операцию. В качестве предложения: К < (N2 – N1). Для этого выполняются следующие операции : Для каждого k из перечня К определяется остаток от деления N1 на k, после чего находятся составные числа в диапазоне с шагом k до N2. Далее необходимо для каждого оставшегося нечётного числа из диапазона провести отдельный анализ на определения двух сомножителей (любых). Если такие сомножители существуют, то число – составное. Пусть очередное нечётное число Р. Тогда определяем Q: Q = sqrt(P) Если Q – целое число, то это означает, что Р – составное число, у которого два сомножителя: Q и Q. Если Q не является целым, то рассмотрим остаток q q = А^2 – Р. А = (целое(Q) +1 ) И для этого остатка попробуем найти B: B = sqrt(q) . Если отличие двух сомножителей небольшое, то В – целое число, и определены два сомножителя. В качестве примера этот алгоритм определил у числа 1606533434981 два сомножителя 1267501 и 1267481. Далее будут рассмотрены следующие операции. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2019, 14:09 |
|
Новое решето для определения простых чисел?
|
|||
---|---|---|---|
#18+
Gennadiy UsovВ качестве примера этот алгоритм определил у числа 1606533434981 два сомножителя 1267501 и 1267481.А затем алгоритм выдаёт ещё составные числа от -91 до +989 (можно больше) от исходного числа (второе и третье число – сомножители): 1606533435077 1267493 1267489 1606533435065 1267495 1267487 1606533435045 1267497 1267485 1606533435017 1267499 1267483 1606533434981 1267501 1267481 1606533434937 1267503 1267479 1606533434885 1267505 1267477 1606533434825 1267507 1267475 1606533434757 1267509 1267473 1606533434681 1267511 1267471 1606533434597 1267513 1267469 1606533434505 1267515 1267467 1606533434405 1267517 1267465 1606533434297 1267519 1267463 1606533434181 1267521 1267461 1606533434057 1267523 1267459 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2019, 20:16 |
|
Новое решето для определения простых чисел?
|
|||
---|---|---|---|
#18+
Согласно сообщению 21848245 легко находить сомножители для тех чисел, у которых эти сомножители почти равны. Следовательно, необходимо рассмотреть возможность сделать так, чтобы сомножители были почти равны. Например, умножить меньший сомножитель на 3, согласно 21848227 умножить на 3 и Р. Например, есть 535507764991 1267501 422491 число и два сомножителя. Но мы не знаем, что это число составное. Умножаем основное число на 3 и получаем 1606523294973 После работы алгоритма получим 1606523294973 1267501 1267473 После чего делим второй сомножитель на 3, и получаем: 422491 То есть, число 535507764991 - составное число. Одновременно получаем ещё несколько составных чисел. 535507765055 1267489 422495 535507765035 1267495 422493 535507764923 1267507 422489 535507764831 1267513 422487 535507764715 1267519 422485 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.03.2019, 20:43 |
|
Новое решето для определения простых чисел?
|
|||
---|---|---|---|
#18+
Gennadiy UsovВ качестве примера этот алгоритм определил у числа 1606533434981 два сомножителя 1267501 и 1267481. А ещё бывают 3,4,5,6,... сомножителей. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2019, 19:48 |
|
Новое решето для определения простых чисел?
|
|||
---|---|---|---|
#18+
alex55555Gennadiy UsovВ качестве примера этот алгоритм определил у числа 1606533434981 два сомножителя 1267501 и 1267481.А ещё бывают 3,4,5,6,... сомножителей.Данный алгоритм определяет только два сомножителя из всех возможных сомножителей. Этого достаточно, чтобы сказать о числе Р, что оно составное. То есть, строится некоторая окрестность (решето) числа Р, состоящая из составных чисел. На полную факторизацию не претендую. Пока определяются сомножители, находящиеся в некоторой окрестности от определённых комбинаций возможных сомножителей (очень малая часть комбинаций). ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2019, 20:26 |
|
Новое решето для определения простых чисел?
|
|||
---|---|---|---|
#18+
Имеется число 4566373287117,00 Корень этого числа 2136907,412 До величины корня существует около 146616 простых чисел, которые, допустим, неизвестны. Спрашивается в задачке: Сколько нужно сделать вычислений, чтобы понять, что это число составное? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2019, 20:54 |
|
Новое решето для определения простых чисел?
|
|||
---|---|---|---|
#18+
Gennadiy UsovИмеется число 4566373287117,00 Корень этого числа 2136907,412 До величины корня существует около 146616 простых чисел, которые, допустим, неизвестны. Спрашивается в задачке: Сколько нужно сделать вычислений, чтобы понять, что это число составное? Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2019, 06:30 |
|
Новое решето для определения простых чисел?
|
|||
---|---|---|---|
#18+
BarloneGennadiy UsovИмеется число 4566373287117,00 Корень этого числа 2136907,412 До величины корня существует около 146616 простых чисел, которые, допустим, неизвестны. Спрашивается в задачке: Сколько нужно сделать вычислений, чтобы понять, что это число составное? Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2019, 06:37 |
|
Новое решето для определения простых чисел?
|
|||
---|---|---|---|
#18+
Gennadiy UsovА какое максимальное число может "проглотить" pow(2,4566373287117-1,4566373287117)?Большое. Для числа с 5000 десятичных знаков еще можно дождаться результата (несколько минут). Для чисел порядка используемых в RSA криптографии ответ за меньше секунды. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2019, 08:53 |
|
Новое решето для определения простых чисел?
|
|||
---|---|---|---|
#18+
BarloneGennadiy UsovА какое максимальное число может "проглотить" pow(2,4566373287117-1,4566373287117)?Большое. Для числа с 5000 десятичных знаков еще можно дождаться результата (несколько минут). Для чисел порядка используемых в RSA криптографии ответ за меньше секунды.Тогда, получается, нет проблем с выбором простого числа рядом со случайным числом для RSA? И тогда зачем поиск любого решета? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2019, 09:49 |
|
Новое решето для определения простых чисел?
|
|||
---|---|---|---|
#18+
Gennadiy UsovТогда, получается, нет проблем с выбором простого числа рядом со случайным числом для RSA? Уже раз сто говорено - с практической точки зрения там никаких проблем нет. Хотя теоретически ускорить операцию всё ещё возможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2019, 11:24 |
|
Новое решето для определения простых чисел?
|
|||
---|---|---|---|
#18+
Gennadiy UsovВ качестве примера этот алгоритм определил у числа 1606533434981 решила приложить свою проверку на простоту Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2019, 13:15 |
|
Новое решето для определения простых чисел?
|
|||
---|---|---|---|
#18+
причем основные делители для чисел до миллиона ''простоеколичество'' 5 67999'' 7 38856'' 11 21194'' 13 16302'' 17 11507'' 19 9690'' 23 7586'' 29 5759'' 31 5202 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2019, 13:22 |
|
Новое решето для определения простых чисел?
|
|||
---|---|---|---|
#18+
34 5,5 5,8333 составное 35 5,6667 6 простое, на 50 %, надо проверять дальше 36 5,8333 6,1667 составное 37 6 6,3333 простое, на 50 %, надо проверять дальше 1606533434987 267755572497,6667 267755572498 простое, на 50 %, надо проверять дальше 1606533434981 267755572496,6667 267755572497 простое, на 50 %, надо проверять дальше 1606533434991 267755572498,3333 267755572498,6667 составное ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2019, 15:41 |
|
Новое решето для определения простых чисел?
|
|||
---|---|---|---|
#18+
BarloneGennadiy UsovА какое максимальное число может "проглотить" pow(2,4566373287117-1,4566373287117)?Большое. Для числа с 5000 десятичных знаков еще можно дождаться результата (несколько минут). Для чисел порядка используемых в RSA криптографии ответ за меньше секунды.Получается, что формируется число 2^(4566373287117-1), которое представляет собой двоичное число, длиной (4566373287117-1), у которого первая цифра 1, а остальные цифры 0. И надо найти остаток от деления этого числа на 4566373287117. Так какие проблемы? Почему такая медленная скорость для чисел в районе 5000 десятичных знаков? Ведь "питону" любые длины чисел до лампочки? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2019, 09:22 |
|
Новое решето для определения простых чисел?
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА Код: vbnet 1.
В басике (я уж подзабыл, но) есть функции округления. Не помню все или не все из списка, но список такой - floor, ceil, round. Они работают существенно быстрее строковых операций, поэтому при долгих вычислениях (как раз ваш случай) имеет смысл экономить. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2019, 11:33 |
|
Новое решето для определения простых чисел?
|
|||
---|---|---|---|
#18+
Gennadiy UsovВедь "питону" любые длины чисел до лампочки? Ему может быть до лампочки конструктор целого числа. Но операции над ним - скорее всего нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2019, 12:15 |
|
Новое решето для определения простых чисел?
|
|||
---|---|---|---|
#18+
maytonGennadiy UsovВедь "питону" любые длины чисел до лампочки?Ему может быть до лампочки конструктор целого числа. Но операции над ним - скорее всего нет.Так почему всё-таки: Barlone Для числа с 5000 десятичных знаков еще можно дождаться результата (несколько минут). Наверное, есть ограничения? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2019, 14:24 |
|
Новое решето для определения простых чисел?
|
|||
---|---|---|---|
#18+
alex55555В басике (я уж подзабыл, но) есть функции округления. они как раз и не нужны --нужно точное деление если при делении получим 6,99999999 и система округлить его до 7 это не есть решение ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2019, 15:25 |
|
Новое решето для определения простых чисел?
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКАalex55555В басике (я уж подзабыл, но) есть функции округления. они как раз и не нужны --нужно точное деление если при делении получим 6,99999999 и система округлить его до 7 это не есть решение В родительском топике мы уже оговаривали что в задачах теории чисел (поиск простых в том числе) мы будем избегать вещественных цифр, округлений и игр с экспоненциальной формой в любых ее представлениях. Вроде все согласились. Исключение - только для оценочных формул. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2019, 22:10 |
|
|
start [/forum/topic.php?fid=16&msg=39797233&tid=1339964]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
135ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 250ms |
0 / 0 |