fixfix
2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2, 3  След.
 
 Как найти сомножители непростых нечётных чисел
Сообщение23.09.2023, 07:51 


21/10/21
62
Существующие методы нахождения непростых нечетных чисел (далее в тексте - ННЧ) основаны, в сущности, на методе перебора вариантов. Предлагаемый метод - тоже. Но! Если требуется найти сомножители для группы близких по значению ННЧ - этот метод будет самое ТО! Не требует высокоумных математических знаний (достаточно таблицы умножения) и экономит массу времени.
Основан метод на трёх обнаруженных мною правилах.
Правило 1
Ближайшее справа к квадрату простого числа ННЧ всегда делится на 3
Так, для простого числа (далее в тексте - ПЧ) 19 его квадрат равен 361. Ближайшее справа ННЧ = 363 делится на 3.
Для ПЧ = 29 квадрат равен 841. Ближайшее справа ННЧ = 843 - делится на 3. И это справедливо для всех ННЧ, прилегающих справа к квадрату любого простого числа.
Правило 2
Разность между двумя соседними ННЧ, имеющими одинаковый левый сомножитель, всегда равна удвоенному значению этого сомножителя
Например, имею $N_1$ = 77 = 7$\cdot$11
$N_2$ = $N_1$ + (2$\cdot$7) = 77 + 14 = 91 = 7$\cdot$13
$N_3$ = $N_2$ + (2$\cdot$7) = 91 + 14 = 105 = 7$\cdot$15 и т.д.
Правило 3
В диапазоне между квадратами двух соседних простых чисел ни одно ННЧ не может иметь один из сомножителей больше, чем левое простое число
Привожу пример расчета:
Надо найти сомножители для группы ННЧ от 381 до 507. Группа ограничена слева квадратом ПЧ = 19 ($19^2$ = 363), справа квадратом ПЧ = 23 ($23^2$= 529)
1. Ищем ННЧ с сомножителем а = 3
Согласно правилу 1 ближайшее справа ННЧ = 363. Обозначу его как $N_0$ = 363 = 3$\dot{}$121
Последующие ННЧ будут определяться как
$N_1$ = $N_0$ + (2$\dot{}$3) = 363 + 6 = 369
$N_2$ = $N_1$ + (2$\dot{}$3) = 369 + 6 = 375
$N_3$ = $N_2$] + (2$\dot{}$3) = 375 + 6 = 381
......................................................................................
и так до последнего в диапазоне
$N_2_6$ = $N_2_5$+ (2$\dot{}$3) = 513 + 6 = 519
2. Ищем ННЧ с максимальным для диапазона сомножителем а = 19
За $N_0$ принимает квадрат числа 19, т.е. $N_0$ = 361 Следующие ННЧ с этим сомножителем будут
$N_1$ = $N_0$ + (2$\cdot$19) = 361 + 38 = 399
$N_2$ = $N_1$ + (2$\cdot$19) = 399 + 38 = 437
...............................................
$N_4$ = $N_3$ + (2$\cdot$19) = 475 + 38 = 513 - последнее в диапазоне. Все эти ННЧ делятся на 19
Алгоритм чуть усложняется, когда надо найти ННЧ с промежуточными сомножителями а = 7, 11, 13, 17
3. Ищем ННЧ с сомножителем а = 17
а) обозначу как m разность между квадрами ПЧ 19 и 17, т.е. m = $19^2$ - $17^2$ = 361 - 289 = 72
б) введем число k = m / (2$\cdot$17) = 72 / (34) = 2, 117.....,.,.,
в) округляем k до целого числа, т.е. принимаем k = 3
г) определяем $N_0$ как $N_0$ = 289 + (2$\cdot$17) = 391
$N_1 = N_0 $ + (2$\cdot$17) = 425
.....................................................................
$N_4 = N_3 $ + (2$\cdot$17) = 527
Задача решена - сомножители всей группы ННЧ найдены.

 Профиль  
                  
 
 Re: Как найти сомножители непростых нечётных чисел
Сообщение23.09.2023, 11:49 
Заслуженный участник
Аватара пользователя


16/07/14
9446
Цюрих
Первые два "правила" очевидны, и упражнение для максмум 5го класса. Третье следует из того, что $p_{n + 1} < 2^{p_n / 2}$.

(Оффтоп)


А в чем польза-то для народного хозяйства?

 Профиль  
                  
 
 Re: Как найти сомножители непростых нечётных чисел
Сообщение23.09.2023, 16:58 


21/10/21
62
mihaild в сообщении #1610953 писал(а):
Первые два "правила" очевидны, и упражнение для максмум 5го класса. Третье следует из того, что $p_{n + 1} < 2^{p_n / 2}$.

(Оффтоп)


А в чем польза-то для народного хозяйства?

Польза для народного хозяйства очевидная: простота метода и экономия времени
Попробуйте иначе найти сомножители для всех ННЧ, скажем, от 1379 до 1651. Интересно, сколько времени это займёт?
P.S. Мне кажется, "мы с вами где-то встречались"

 Профиль  
                  
 
 Re: Как найти сомножители непростых нечётных чисел
Сообщение23.09.2023, 17:36 
Заслуженный участник
Аватара пользователя


16/07/14
9446
Цюрих
ivanovbp в сообщении #1611010 писал(а):
простота метода и экономия времени
Покажите, как Вы считаете время.
ivanovbp в сообщении #1611010 писал(а):
Попробуйте иначе найти сомножители для всех ННЧ, скажем, от 1379 до 1651. Интересно, сколько времени это займёт?
Чуть больше 6 микросекунд https://colab.research.google.com/drive ... sp=sharing.

 Профиль  
                  
 
 Re: Как найти сомножители непростых нечётных чисел
Сообщение23.09.2023, 18:23 
Заслуженный участник


12/08/10
1713
mihaild в сообщении #1611012 писал(а):
Чуть больше 6 микросекунд
Я думаю этот код раскладывает числа на множители независимо. Что-то типа решета Эратосфена будет быстрее. Это похоже на то что предлагает ТС.

 Профиль  
                  
 
 Re: Как найти сомножители непростых нечётных чисел
Сообщение23.09.2023, 19:15 
Заслуженный участник


20/08/14
11986
Россия, Москва
Вряд ли зачем-то надо раскладывать на множители миллиардные-триллионные интервалы чтобы преимущество решета проявилось.
А раскладывать большие числа (от полусотни знаков) никакое решето не поможет.
Так что да, я тоже не вижу преимуществ идеи ТС.

PS. Ну и проводить какие-то тесты на числах короче хотя бы десятка (а лучше пары десятков) знаков не слишком разумно. Если только не для ручного счёта на бумажке.

 Профиль  
                  
 
 Re: Как найти сомножители непростых нечётных чисел
Сообщение23.09.2023, 20:29 
Заслуженный участник
Аватара пользователя


16/07/14
9446
Цюрих
Null в сообщении #1611017 писал(а):
Я думаю этот код раскладывает числа на множители независимо
А еще выполняется на неизвестно каком железе неизвестно каким интерпретатором, помимо собственно разложения на множители ходит по хеш-таблицам и т.д.
Но в целом сравнивать время на таком интервале бессмысленно, тут можно всё предпосчитать.

 Профиль  
                  
 
 Re: Как найти сомножители непростых нечётных чисел
Сообщение23.09.2023, 22:59 


10/03/16
4444
Aeroport

(namba theory)


 Профиль  
                  
 
 Re: Как найти сомножители непростых нечётных чисел
Сообщение24.09.2023, 08:00 


21/10/21
62
mihaild и другие (цитата из классики):
"Аркадий, не говорите мне красиво..."
Сразу видно, что вы никогда в жизни не занимались работой с конкретным "железом". Много лет назад, ещё при советской власти, мне надо было для нескольких сотен оборонных "штуковин" (между прочим, нечётного числа) найти варианты их прямоугольного размещения. Может быть, вы не знаете, но тогда не было не только компьютеров, но даже электронных калькуляторов. Так что помучиться пришлось.
Предложенный метод - для инженеров-расчётчиков, работающих "на земле", на большее не претендую.

 Профиль  
                  
 
 Re: Как найти сомножители непростых нечётных чисел
Сообщение24.09.2023, 11:23 
Заслуженный участник
Аватара пользователя


16/07/14
9446
Цюрих

(Оффтоп)


ivanovbp в сообщении #1611065 писал(а):
Сразу видно, что вы никогда в жизни не занимались работой с конкретным "железом".
Немного занимался, и мне очень интересно, как по двум строчкам на питоне можно это проверить.
ivanovbp в сообщении #1611065 писал(а):
тогда не было не только компьютеров, но даже электронных калькуляторов
Калькуляторы в СССР появились 60 лет назад. Теоретически конечно можно предположить, что Вам условно 85 лет, и Вы в то время уже занимались какими-то рассчетами, но гипотеза что Вы не совсем точны представляется мне более вероятной.
ivanovbp в сообщении #1611065 писал(а):
Предложенный метод - для инженеров-расчётчиков, работающих "на земле", на большее не претендую
Методы ручной факторизации в настоящий момент для практики интереса не представляют - как только задача становится достаточно сложной, чтобы возник смысл что-то изобретать, проще взять железку. Так что какой-то смысл обсуждать есть только методы автоматического вычисления.

 Профиль  
                  
 
 Re: Как найти сомножители непростых нечётных чисел
Сообщение24.09.2023, 12:13 


05/09/16
12317
Я так понимаю, что ТС готовит нас к временам, когда все компьютеры сломаются и мы вернёмся к таблицам Брадиса. Тут, однако, есть вопрос... А останется ли всё ещё, в таком случае, потребность человечества
ivanovbp в сообщении #1611065 писал(а):
для нескольких сотен оборонных "штуковин" (между прочим, нечётного числа) найти варианты их прямоугольного размещения

 Профиль  
                  
 
 Re: Как найти сомножители непростых нечётных чисел
Сообщение24.09.2023, 15:43 


21/10/21
62
mihaild в сообщении #1611089 писал(а):
Немного занимался, и мне очень интересно, как по двум строчкам на питоне можно это проверить
тогда не было не только компьютеров, но даже электронных калькуляторов Калькуляторы в СССР появились 60 лет назад. Теоретически конечно можно предположить, что Вам условно 85 лет, и Вы в то время уже занимались какими-то рассчетами, но гипотеза что Вы не совсем точны представляется мне более вероятной

1. Поясните, что вам интересно. Смогу - отвечу. Только просьба не использовать язык "арго", даже если он профессиональный
2. 85 - не теоретически, а конкретно. И судить о том, где и когда появились калькуляторы, сподручнее мне.

 Профиль  
                  
 
 Re: Как найти сомножители непростых нечётных чисел
Сообщение24.09.2023, 17:57 


05/09/16
12317
ivanovbp в сообщении #1611010 писал(а):
Попробуйте иначе найти сомножители для всех ННЧ, скажем, от 1379 до 1651.

Дальше буду сопровождать расчетами из pari/gp - это такой калькулятор.
Если я правильно понял что вы предлагаете, то делаем так.
Присвоим переменным a и b значения начала и конца диапазона
? a=1379;b=1651;

Вычисляем квадратный корень из правого конца диапазона и ищем наименьшее простое число, большее этого корня, назовём его p:
? p=nextprime(sqrtint(b));print(p)
41
?

Теперь возьмём начало диапазона и посчитаем остатки от деления его на все удвоенные простые числа q начиная от 3 до p, и соответственно первое нечётное число диапазона, которое делится на q, оно будет нашим первым ННЧ, имеющим множитель q
Код:
? forprime(q=3,p,print("Следующее за числом ",a," ННЧ, которое делится на q=",q," равно ",a-a%(2*q)+3*q))
Следующее за числом 1379 ННЧ, которое делится на q=3 равно 1383
Следующее за числом 1379 ННЧ, которое делится на q=5 равно 1385
Следующее за числом 1379 ННЧ, которое делится на q=7 равно 1393
Следующее за числом 1379 ННЧ, которое делится на q=11 равно 1397
Следующее за числом 1379 ННЧ, которое делится на q=13 равно 1417
Следующее за числом 1379 ННЧ, которое делится на q=17 равно 1411
Следующее за числом 1379 ННЧ, которое делится на q=19 равно 1425
Следующее за числом 1379 ННЧ, которое делится на q=23 равно 1403
Следующее за числом 1379 ННЧ, которое делится на q=29 равно 1421
Следующее за числом 1379 ННЧ, которое делится на q=31 равно 1457
Следующее за числом 1379 ННЧ, которое делится на q=37 равно 1443
Следующее за числом 1379 ННЧ, которое делится на q=41 равно 1435
time = 1 ms.
?
Теперь для каждого простого числа q из диапазона от 3 до p, выпишем арифметическую прогрессию нечетных чисел, которые попадают в диапазон между a и b и делятся на q
На примере q=41, получаем
? q=41;forstep(i= a-a%(2*q)+3*q,b,2*q,print1(i," "));print()
1435 1517 1599
?

Это все нечётные непростые числа из диапазона от a=1379 до b=1651, которые делятся на 41
Так же поступаем с остальными $q=3,5,7,\dots,37$

Итого, чтобы разбить все числа из данного диапазона на нечетные не простые числа, которые делятся на все возможные в качестве делителей простые числа, имеем такую программу:
Код:
? non_prime_odd(a,b)=print("Задан диапазон от a=",a," до b=",b);forprime(q=3,nextprime(sqrtint(b)), print("ННЧ которые делятся на  ",q,":");forstep(i= a-a%(2*q)+3*q,b,2*q,print1(i," "));print())

Результат её работы для заданного вами диапазона (внимание, много букв и широкие строки):

(Оффтоп)


 Профиль  
                  
 
 Re: Как найти сомножители непростых нечётных чисел
Сообщение24.09.2023, 18:27 


10/03/16
4444
Aeroport

(mihaild)


 Профиль  
                  
 
 Re: Как найти сомножители непростых нечётных чисел
Сообщение24.09.2023, 18:40 
Заслуженный участник


23/05/19
1321

(Оффтоп)


 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 44 ]  На страницу 1, 2, 3  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group