Можно ли заставить OpenPFGW быстро проверять малые (до сотен миллионов) (до сотен миллионов) делители
Можно. Она у меня и проверяет. Диапазон проверки она определяет сама в зависимости от величины проверяемого числа. Его можно увеличить или уменьшить, указав в ключе -f число процентов от диапазона "по умолчанию". Например, чтобы увеличить диапазон в
раз, нужно написать -f1000. Если написать -f0, то никаких делителей она проверять не будет. Можно также указать конкретные границы для проверяемых делителей. Для числа
она проверяет делители до
. Если делитель не обнаружен, далее выполняется тест Ферма по основанию
(можно указать другое основание от
до
). Это не даёт доказательства, что число простое, но если требуется доказательство, то программа использует другие тесты.
В данном случае использовалась команда
Код:
..\pfgw64.exe -f -lLog.txt Dat-6.txt
(программа находится в объемлющем каталоге).
Файл Dat-6.txt содержит
Код:
ABC2 $a^$a-$a-1
a: from 18001 to 20000
(диапазон от
до
был разбит на
частей: первая — от
до
, остальные — по
значений).
В файл Log.txt записывается ход проверки. Его окончание выглядит так:
(Оффтоп)
Код:
19985^19985-19985-1 has factors: 527123
19986^19986-19986-1 has factors: 41
19987^19987-19987-1 has factors: 5
19988^19988-19988-1 has factors: 107
19989^19989-19989-1 has factors: 882169
19990^19990-19990-1 has factors: 23
19991^19991-19991-1 has factors: 139
19992^19992-19992-1 has factors: 78791
19993^19993-19993-1 has factors: 11
19994^19994-19994-1 has factors: 937
19995^19995-19995-1 has factors: 8360479
19996^19996-19996-1 has factors: 13
19997^19997-19997-1 is composite: RES64: [20A1E2AB8F8E4B39] (408.7699s+155.0299s)
19998^19998-19998-1 has factors: 5
19999^19999-19999-1 is composite: RES64: [8C95D79F277F8325] (408.2279s+129.6659s)
20000^20000-20000-1 has factors: 6619
Наблюдая за работой программы, я заметил, что за время тестирования, если оно сколько-нибудь продолжительное, USB-диск (твердотельный) успевает отключиться, и, когда программа хочет что-нибудь записать на него, ей приходится ждать, пока операционная система соблаговолит его подключить. Время ожидания весьма ощутимое — десятки секунд.
Найденные простые числа записываются в файл pfgw-prime.log. В данном случае в нём оказалось следующее:
Код:
3^3-3-1
4^4-4-1
5^5-5-1
6^6-6-1
9^9-9-1
Найденные псевдопростые числа записываются в файл pfgw.log:
Код:
17^17-17-1
22^22-22-1
85^85-85-1
710^710-710-1
844^844-844-1
1379^1379-1379-1
Можно попытаться применить эту программу для доказательства простоты чисел, перечисленных в последнем файле. Для этого создаём вложенный каталог, переписываем в него файл pfgw.log, переименовав его в pfgw.txt, и запускаем программу командой
Код:
..\..\pfgw64.exe -tc -f -x -lLog.txt pfgw.txt
В файле Log.txt будет
(Оффтоп)
Код:
Primality testing 17^17-17-1 [N-1/N+1, Brillhart-Lehmer-Selfridge]
Running N-1 test using base 7
Running N+1 test using discriminant 13, base 1+sqrt(13)
Running N+1 test using discriminant 13, base 2+sqrt(13)
Calling N+1 BLS with factored part 100.00% and helper 10.14% (311.59% proof)
17^17-17-1 is prime! (0.1882s+0.0233s)
Primality testing 22^22-22-1 [N-1/N+1, Brillhart-Lehmer-Selfridge]
Running N-1 test using base 3
Running N+1 test using discriminant 7, base 1+sqrt(7)
Calling N-1 BLS with factored part 41.84% and helper 20.41% (146.94% proof)
22^22-22-1 is prime! (0.0616s+0.0329s)
Primality testing 85^85-85-1 [N-1/N+1, Brillhart-Lehmer-Selfridge]
Running N-1 test using base 11
Running N+1 test using discriminant 23, base 2+sqrt(23)
Calling N+1 BLS with factored part 18.20% and helper 0.74% (55.51% proof)
85^85-85-1 is Fermat and Lucas PRP! (0.0638s+0.0122s)
Primality testing 710^710-710-1 [N-1/N+1, Brillhart-Lehmer-Selfridge]
Running N-1 test using base 7
Running N-1 test using base 19
Running N+1 test using discriminant 29, base 1+sqrt(29)
Calling N-1 BLS with factored part 0.73% and helper 0.42% (2.63% proof)
710^710-710-1 is Fermat and Lucas PRP! (1.2083s+0.0350s)
Primality testing 844^844-844-1 [N-1/N+1, Brillhart-Lehmer-Selfridge]
Running N-1 test using base 2
Running N-1 test using base 23
Running N+1 test using discriminant 59, base 1+sqrt(59)
Calling N+1 BLS with factored part 0.85% and helper 0.56% (3.12% proof)
844^844-844-1 is Fermat and Lucas PRP! (2.0347s+0.1272s)
Primality testing 1379^1379-1379-1 [N-1/N+1, Brillhart-Lehmer-Selfridge]
Running N-1 test using base 11
Running N+1 test using discriminant 17, base 1+sqrt(17)
Calling N+1 BLS with factored part 0.78% and helper 0.01% (2.35% proof)
1379^1379-1379-1 is Fermat and Lucas PRP! (5.0483s+0.0566s)
Соответственно, файл pfgw-prime.log будет содержать
Код:
17^17-17-1
22^22-22-1
а файл pfgw.log —
Код:
85^85-85-1
710^710-710-1
844^844-844-1
1379^1379-1379-1
то есть, с последними четырьмя числами программа не справляется.