swap_factors.pl 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512
  1. #!/usr/bin/perl
  2. use 5.014;
  3. use Math::GMPz;
  4. use List::Util qw(uniq);
  5. use ntheory qw(forsemiprimes forprimes factor forsquarefree random_prime );
  6. use Math::Prime::Util::GMP qw(mulint is_pseudoprime vecprod divint sqrtint divisors gcd);
  7. # 3274782926266545
  8. # 4788772759754985
  9. # 633708839387221385771985
  10. # 85866492509341408342261785
  11. # 1153582279094600286115568385
  12. # 38049785538164232203093987265
  13. # 9239040473268653691499587195465
  14. # 55428474928216449147566945330865
  15. # 304740732375157335714579744005385
  16. #~ 687704738507315339413174636065
  17. #~ 4125799098581345329437336507465
  18. #~ 35784743100970575065929487616705
  19. #~ 93934885805169798001550107714545
  20. #~ 4655734127045
  21. #~ 221776809518265
  22. #~ 3274782926266545
  23. #~ 4788772759754985
  24. #~ 38353281032877674865
  25. #~ 2638294879881771254145
  26. #~ 24773130788808935997465
  27. #~ 429388072625313108651345
  28. #~ 633708839387221385771985
  29. #~ 13436161237966288348110585
  30. #~ 8074730241975744403202730585
  31. #~ 64670514507983736925250669255265
  32. # 4426632427184293146004185
  33. # 429388072625313108651345
  34. # 266337095804598854461505143065
  35. # 2133093800299032225382194690807585
  36. # 76863331618321292940799905
  37. # 4426632427184293146004185
  38. #~ 221776809518265
  39. #~ 3274782926266545
  40. #~ 4788772759754985
  41. #~ 44445311134962585
  42. #~ 136836291472769505
  43. #~ 331898284250350665
  44. #~ 612756519790891785
  45. #~ 1121391818823450945
  46. #~ 1326249209093672865
  47. #~ 1776210467431784385
  48. #~ 2176485176509015065
  49. #~ 2790959548188872985
  50. #~ 3005741099401045545
  51. #~ 3486467789908607505
  52. #~ 5875480119318227265
  53. #~ 6686415419518378545
  54. #~ 6967562024635331505
  55. #~ 10382924891216612505
  56. #~ 10656153920543114985
  57. #~ 10866946026210257985
  58. #~ 12142602391592154945
  59. #~ 12909374329071388785
  60. #~ 13709382959660636865
  61. #~ 17350265139042425745
  62. # 251324857051150634717505, 4298985769199999538585, 58264154129967593746442505
  63. # 46534068369757323368492865, 4298985769199999538585, 58264154129967593746442505
  64. # 94431368119882647887265, 46534068369757323368492865, 4298985769199999538585
  65. # 3486467789908607505, 6686415419518378545, 6967562024635331505, 4788772759754985
  66. # 633708839387221385771985, 30449076023716600364958107265, 5075374094652256078647827865
  67. # 3107353551594110575521369407046227985, 41771944171151419698571866577673865, 32135905844445616613674965617710785
  68. # 3178327865071658746992945293797905, 6543514918337095245925022641540545, 58361005458182925354581213657907242505
  69. # 6543514918337095245925022641540545, 58361005458182925354581213657907242505, 218924994654832550816515785
  70. # 5551200871830513970028352466076188185, 30289748358904212366572385, 639279061696677004929094997372145
  71. # 609299754103181490100455705
  72. # 5551200871830513970028352466076188185, 30289748358904212366572385, 156693987228084145384168898338065
  73. # 5821477606342877287368646390305, 1455392118896988500001436526865, 156693987228084145384168898338065
  74. # 1370862939340854730059272985
  75. # 2620169904670649052334519366844385
  76. # 6752727999005617757947385377498566305370945, 1447019058278583487014876666838646972760705
  77. # 2012729986647758693189432627820105025467340545
  78. # 14089090063942564942304718922492104414299518785
  79. # 156693987228084145384168898338065, 301153464627386708780887273262792222865, 7528989392322215101563931396245685185
  80. # 639279061696677004929094997372145, 389070990460152895292891577255663796305, 3307098624318336884912041438460661977505
  81. # 156693987228084145384168898338065, 301153464627386708780887273262792222865, 7528989392322215101563931396245685185
  82. # 389070990460152895292891577255663796305, 3307098624318336884912041438460661977505, 14089090063942564942304718922492104414299518785, 2012729986647758693189432627820105025467340545, 1370862939340854730059272985
  83. # 2620169904670649052334519366844385
  84. # 14089090063942564942304718922492104414299518785, 2012729986647758693189432627820105025467340545
  85. # 13619855197403642505743435147863830105, 156693987228084145384168898338065, 389070990460152895292891577255663796305
  86. # 156693987228084145384168898338065
  87. # 1455392118896988500001436526865
  88. # 5821477606342877287368646390305
  89. # 2632787600289811236737758837545
  90. # 218924994654832550816515785
  91. # 30289748358904212366572385
  92. # 609299754103181490100455705
  93. #~ 3107353551594110575521369407046227985
  94. #~ 41771944171151419698571866577673865
  95. #~ 32135905844445616613674965617710785
  96. #~ 3178327865071658746992945293797905
  97. #~ 6543514918337095245925022641540545
  98. #~ 58361005458182925354581213657907242505
  99. #~ 609299754103181490100455705
  100. #~ 2620169904670649052334519366844385
  101. #~ 218924994654832550816515785
  102. #~ 5551200871830513970028352466076188185
  103. #~ 2632787600289811236737758837545
  104. #~ 30289748358904212366572385
  105. #~ 5821477606342877287368646390305
  106. #~ 1455392118896988500001436526865
  107. #~ 13619855197403642505743435147863830105
  108. #~ 156693987228084145384168898338065
  109. #~ 301153464627386708780887273262792222865
  110. #~ 7528989392322215101563931396245685185
  111. #~ 6752727999005617757947385377498566305370945
  112. #~ 1447019058278583487014876666838646972760705
  113. #~ 639279061696677004929094997372145
  114. #~ 389070990460152895292891577255663796305
  115. #~ 3307098624318336884912041438460661977505
  116. #~ 14089090063942564942304718922492104414299518785
  117. #~ 2012729986647758693189432627820105025467340545
  118. #~ 1370862939340854730059272985
  119. # 39898386437874778336787265, 687704738507315339413174636065, 4125799098581345329437336507465
  120. # 4125799098581345329437336507465, 687704738507315339413174636065, 39898386437874778336787265
  121. #~ 1.9801 record: 3307098624318336884912041438460661977505
  122. #~ 1.9731 record: 10092362094594076578926570519025778129785
  123. #~ 1.9753 record: 12804114195310937542216014575625232525185
  124. #~ 1.9731 record: 67190462911126877171884960163556426292185
  125. #~ 1.9790 record: 1447019058278583487014876666838646972760705
  126. #~ 1.9790 record: 6752727999005617757947385377498566305370945
  127. #~ 1.9790 record: 14470122821881303970212852593003903516440385
  128. #~ 1.9790 record: 17725898762781984091012346574545217652360305
  129. #~ 1.9790 record: 18328820233319147076345586200756572121975105
  130. # 136175808701462527139922181690151865
  131. # 18322261399861557009937979582411606865
  132. # 11188420062660109059016836239101375905
  133. # 104218464815136937688132622425591846968504305, 5821477606342877287368646390305, 11188420062660109059016836239101375905, 14470122821881303970212852593003903516440385, 6752727999005617757947385377498566305370945, 1447019058278583487014876666838646972760705
  134. # 11188420062660109059016836239101375905, 1455392118896988500001436526865, 2797148676542619034911260891148907665
  135. # 136175808701462527139922181690151865, 5821477606342877287368646390305, 7528989392322215101563931396245685185
  136. # 5821477606342877287368646390305, 11188420062660109059016836239101375905, 2797148676542619034911260891148907665
  137. # 1842836800348739399588385, 5821477606342877287368646390305, 1455392118896988500001436526865
  138. #~ 1.9810 record: 1370862939340854730059272985
  139. #~ 1.9801 record: 14089090063942564942304718922492104414299518785
  140. #~ 1.9801 record: 2012729986647758693189432627820105025467340545
  141. #~ 1.9801 record: 3307098624318336884912041438460661977505
  142. #~ 1.9797 record: 389070990460152895292891577255663796305
  143. #~ 1.9797 record: 639279061696677004929094997372145
  144. #~ 1.9790 record: 7528989392322215101563931396245685185
  145. #~ 1.9790 record: 6752727999005617757947385377498566305370945
  146. #~ 1.9790 record: 1447019058278583487014876666838646972760705
  147. #~ 1.9790 record: 18328820233319147076345586200756572121975105
  148. #~ 1.9790 record: 14470122821881303970212852593003903516440385
  149. #~ 1.9790 record: 17725898762781984091012346574545217652360305
  150. # 30289748358904212366572385, 13619855197403642505743435147863830105, 156693987228084145384168898338065, 389070990460152895292891577255663796305, 3307098624318336884912041438460661977505
  151. # 5821477606342877287368646390305, 18328820233319147076345586200756572121975105, 6752727999005617757947385377498566305370945, 1447019058278583487014876666838646972760705
  152. #~ 639279061696677004929094997372145
  153. #~ 2632787600289811236737758837545
  154. #~ 218924994654832550816515785
  155. #~ 30289748358904212366572385
  156. # 1132535995673545452074924146972665
  157. # 13619855197403642505743435147863830105, 156693987228084145384168898338065, 389070990460152895292891577255663796305, 3307098624318336884912041438460661977505
  158. # 609299754103181490100455705
  159. # 3278282922943952669012673870465
  160. # 2632787600289811236737758837545, 13619855197403642505743435147863830105, 156693987228084145384168898338065, 389070990460152895292891577255663796305, 14089090063942564942304718922492104414299518785, 2012729986647758693189432627820105025467340545
  161. #~ 13619855197403642505743435147863830105
  162. #~ 1132535995673545452074924146972665
  163. #~ 156693987228084145384168898338065
  164. #~ 2632787600289811236737758837545
  165. #~ 4899856299584863138737230040441981737463534244985985
  166. #~ 19599419160149492611672840593470043489539060577922305
  167. #~ 93097233462972639976350893358610352249916692242603905
  168. #~ 1177059715761219117658883587886332755445055385
  169. #~ 53935415195230758699889959882512028522705
  170. #~ 7528989392322215101563931396245685185
  171. #~ 301153464627386708780887273262792222865
  172. #~ 1447019058278583487014876666838646972760705
  173. #~ 6752727999005617757947385377498566305370945
  174. #~ 14470122821881303970212852593003903516440385
  175. #~ 17725898762781984091012346574545217652360305
  176. #~ 18328820233319147076345586200756572121975105
  177. #~ 348247448911254732650694309663609737895193665
  178. #~ 2781056315505833453947118778407199228535226914305
  179. #~ 35226544511640968468117185376544271849238515776705
  180. #~ 669304085258967607030755058322994491065268503830465
  181. #~ 1854038026010241728825908190563688431905808863105
  182. #~ 2781056315505833453947118778407199228535226914305
  183. #~ 3522670947102306834044087248682007865838761355265
  184. #~ 6303725815589082009407719012212540255727015508865
  185. #~ 66930721948600780832334891457178146355290956057345
  186. #~ 101972013291534148041916651677662854467882958392705
  187. #~ 226638977350964872855547834371681875658821442846238952260865
  188. #~ 4759416662425593070513704994787452216628205301437173145400065
  189. #~ 11188420062660109059016836239101375905
  190. #~ 5821477606342877287368646390305
  191. # 14470122821881303970212852593003903516440385, 6752727999005617757947385377498566305370945, 1447019058278583487014876666838646972760705, 93097233462972639976350893358610352249916692242603905, 19599419160149492611672840593470043489539060577922305, 4899856299584863138737230040441981737463534244985985
  192. #~ 1.3331 record: 4655734127045
  193. #~ 1.9036 record: 221776809518265
  194. #~ 1.9106 record: 3274782926266545
  195. #~ 1.9449 record: 4788772759754985
  196. #~ 1.9452 record: 38353281032877674865
  197. #~ 1.9452 record: 2638294879881771254145
  198. #~ 1.9454 record: 24773130788808935997465
  199. #~ 1.9454 record: 429388072625313108651345
  200. #~ 1.9459 record: 633708839387221385771985
  201. #~ 1.9594 record: 4426632427184293146004185
  202. #~ 1.9786 record: 30289748358904212366572385
  203. #~ 1.9810 record: 1370862939340854730059272985
  204. #~ 139919773284892603401054736144065
  205. #~ 303158659430755143165760511885985
  206. #~ 932794363136224939401054218319105
  207. #~ 1399191180695832195871642149010305
  208. #~ 1772308634743518001048112493563265
  209. #~ 3171499087422339770459876285636865
  210. #~ 10447289441352212971401048004419585
  211. #~ 14551581435876756828342221794502145
  212. #~ 29103162143736503230224565232067585
  213. #~ 33673850955820654343636326952841345
  214. #~ 51303650659573808638224550732968705
  215. #~ 55221383927074509592577489350774785
  216. #~ 268914750591474077221158519544737548865
  217. #~ 340625313437260955175439884475404590145
  218. #~ 165709828801165348659987395193678463554945
  219. #~ 3406237183594896860092389411741603832065
  220. #~ 1772308634743518001048112493563265
  221. #~ 1399191180695832195871642149010305
  222. #~ 728017010426459878356936705
  223. #~ 3406237183594896860092389411741603832065
  224. #~ 165709828801165348659987395193678463554945
  225. #~ 340625313437260955175439884475404590145
  226. #~ 268914750591474077221158519544737548865
  227. #~ 1254930372392549808980688228520895523585
  228. #~ 139919773284892603401054736144065
  229. #~ 303158659430755143165760511885985
  230. #~ 728017010426459878356936705
  231. #~ 139919773284892603401054736144065
  232. #~ 303158659430755143165760511885985
  233. #~ 932794363136224939401054218319105
  234. #~ 1399191180695832195871642149010305
  235. #~ 1772308634743518001048112493563265
  236. #~ 3171499087422339770459876285636865
  237. #~ 10447289441352212971401048004419585
  238. #~ 14551581435876756828342221794502145
  239. #~ 29103162143736503230224565232067585
  240. #~ 33673850955820654343636326952841345
  241. #~ 51303650659573808638224550732968705
  242. #~ 55221383927074509592577489350774785
  243. #~ 218924994654832550816515785
  244. #~ 639279061696677004929094997372145
  245. #~ 1132535995673545452074924146972665
  246. #~ 389070990460152895292891577255663796305
  247. #~ 30289748358904212366572385
  248. #~ 218924994654832550816515785
  249. #~ 10300141479743074871884756785
  250. #~ 22472137786063822097451514305
  251. #~ 82493833111262286648925017091065
  252. #~ 639279061696677004929094997372145
  253. #~ 1132535995673545452074924146972665
  254. #~ 53284372598621002891913195372701665
  255. #~ 116252166558593996496051152805682545
  256. #~ 229081343587719621485049462727091265
  257. #~ 5010766391791082887389992186484728865
  258. #~ 10932144280887665453938956611980148145
  259. #~ 426754540142355612161332781739967634985
  260. #~ 40131228031854782845106447421556193479785
  261. #~ 47011423920882244304476778674633910552385
  262. #~ 728017010426459878356936705
  263. #~ 76318017347929116984103462366785
  264. #~ 8216737111818541950499230458667585
  265. #~ 180959983027381004190174576987837099105
  266. #~ 1330855027023388986575946928980782761705185
  267. #~ 29309870794777798249480230836165230201239067905
  268. #~ 29309870794777798249480230836165230201239067905
  269. #~ 966757480678274985995212386746344614930235396545
  270. #~ 58983382439441107063131597946401884975171745
  271. #~ 627227909123642420730467818700818759298145
  272. #~ 1330855027023388986575946928980782761705185
  273. #~ 98146961330939366255341286595569617031745
  274. #~ 404056476533682721025625613232007531274785
  275. #~ 28005842179161907229848058562567005164545
  276. #~ 180959983027381004190174576987837099105
  277. #~ 404056476533682721025625613232007531274785
  278. #~ 168733432314256365975822626825585985
  279. #~ 76318017347929116984103462366785
  280. #~ 728017010426459878356936705
  281. #~ 1330855027023388986575946928980782761705185
  282. #~ 43896954104021088455373482654504929963842465
  283. #~ 29309870794777798249480230836165230201239067905
  284. #~ 966757480678274985995212386746344614930235396545
  285. #~ 43896954104021088455373482654504929963842465
  286. #~ 1330855027023388986575946928980782761705185
  287. #~ 88338527657562766136835121106422084913985
  288. #~ 28480146561932233988453007412720345665
  289. #~ 4456497873665944483494630908043512865
  290. #~ 8216737111818541950499230458667585
  291. #~ 286262926807330411545250286926066785
  292. #~ 76318017347929116984103462366785
  293. #~ 728017010426459878356936705
  294. #~ 88338527657562766136835121106422084913985
  295. #~ 2678221667369461615815471378693802292865
  296. #~ 4456497873665944483494630908043512865
  297. #~ 76318017347929116984103462366785
  298. #~ 728017010426459878356936705
  299. #~ 728017010426459878356936705
  300. #~ 76318017347929116984103462366785
  301. #~ 8216737111818541950499230458667585
  302. #~ 180959983027381004190174576987837099105
  303. #~ 1683397025406680920009273481912611765185
  304. #~ 1330855027023388986575946928980782761705185
  305. #~ 37074022571292412087167242940541642527847905
  306. #~ 43896954104021088455373482654504929963842465
  307. #~ 3991554127476330332463919727683799211932494305
  308. #~ 29309870794777798249480230836165230201239067905
  309. #~ 966757480678274985995212386746344614930235396545
  310. #~ 418434587081270374809891647090482893659877246461985
  311. # 4941808546075660419264067599369649016479539371630778521435976705, 20887753712520609532567846922583920638944138819042665757801755042611335817254465, 224906436908031007079087447570104271409064434499731585, 43225442828665203343551053810841050234922320859806912515905, 922723577834882097089155855930848203988124904422542752754582465, 827588008789372248232972619716809961612337262401865327317326749111105, 177341012594819494885856131418917508869089689755681759280161467695745, 555385881837969384461386805114747741697881330167516065, 8912541157773704856248850726153279748167674593185, 1712928022736001657437035367611577294639589883088004705
  312. my %seen;
  313. #my $psp = "4788772759754985";
  314. #my $psp = "728017010426459878356936705";
  315. #my $psp = "1370862939340854730059272985";
  316. #my $psp = "45737634436431198836267992527251680040385";
  317. my $psp = "45737634436431198836267992527251680040385";
  318. #my $psp = "1455392118896988500001436526865";
  319. #my $psp = "58214503455693542735775164751585";
  320. #my $psp = "5821477606342877287368646390305";
  321. #my $psp = "7528989392322215101563931396245685185";
  322. #my $psp = "1177059715761219117658883587886332755445055385";
  323. #my $psp = "53935415195230758699889959882512028522705";
  324. #my $psp = "6303725815589082009407719012212540255727015508865";
  325. #my $psp = "66930721948600780832334891457178146355290956057345";
  326. #my $psp = "101972013291534148041916651677662854467882958392705";
  327. #my $psp = "2206948942280833820386780957648323379377299669825663586360240675585";
  328. #my $psp = "226638977350964872855547834371681875658821442846238952260865";
  329. #my $psp = "14470122821881303970212852593003903516440385";
  330. #my $psp = "1842836800348739399588385";
  331. #my $psp = "18328820233319147076345586200756572121975105";
  332. #my $psp = "14089090063942564942304718922492104414299518785";
  333. #my $psp = "156693987228084145384168898338065";
  334. #my $psp = "13619855197403642505743435147863830105";
  335. #my $psp = "30289748358904212366572385";
  336. #my $psp = "1447019058278583487014876666838646972760705";
  337. #my $psp = "639279061696677004929094997372145";
  338. #my $psp = "2632787600289811236737758837545";
  339. #my $psp = "3307098624318336884912041438460661977505";
  340. #my $psp = "1132535995673545452074924146972665";
  341. #my $psp = "609299754103181490100455705";
  342. #my $psp = "218924994654832550816515785";
  343. #my $psp = "3278282922943952669012673870465";
  344. #my $psp = "4899856299584863138737230040441981737463534244985985";
  345. #my $psp = "19599419160149492611672840593470043489539060577922305";
  346. #my $psp = "6752727999005617757947385377498566305370945";
  347. #my $psp = "389070990460152895292891577255663796305";
  348. #my $psp = "2797148676542619034911260891148907665";
  349. #my $psp = "1455392118896988500001436526865";
  350. #my $psp = "17725898762781984091012346574545217652360305";
  351. #my $psp = "6752727999005617757947385377498566305370945";
  352. #my $psp = "7528989392322215101563931396245685185";
  353. if (is_pseudoprime($psp, 2)) {
  354. say $psp;
  355. }
  356. my $limit = sqrtint($psp);
  357. #my $gcd = 7313655;
  358. #my $gcd = 4381310850645;
  359. #my $gcd = 174766108521378405;
  360. #my $gcd = 77728835801292945;
  361. #my $gcd = 113375180882140665;
  362. #my $gcd = 495088126122885;
  363. #my $gcd = 34498510635;
  364. #my $gcd = "19976310800932286865"; # record
  365. my $gcd = "7051637712729097263345";
  366. my @squarefree;
  367. forsquarefree {
  368. if ($_ % 2 == 1 and $_ > 1 and gcd($_, $psp) == 1) {
  369. push @squarefree, $_;
  370. }
  371. } 1e6;
  372. #push @squarefree, grep{ $_>1 } divisors("6283365899669117794965");
  373. #push @squarefree, grep{ $_>1 } divisors("19976310800932286865");
  374. push @squarefree, grep{$_>1} divisors("7051637712729097263345");
  375. @squarefree = uniq(@squarefree);
  376. foreach my $p(divisors($psp)) {
  377. $p > 1 or next;
  378. last if ($p > $limit);
  379. next if (gcd($p, $gcd) > 1);
  380. my $n = divint($psp, $p);
  381. for (@squarefree) {
  382. if (is_pseudoprime(mulint($n, $_), 2)) {
  383. say mulint($n, $_) if !$seen{mulint($n, $_)}++;
  384. }
  385. }
  386. }
  387. __END__
  388. foreach my $n(1..1e6) {
  389. my @copy = @factors;
  390. #$copy[-1] = 3*$n+1;
  391. #$copy[-1] = 2*$n+1;
  392. #$copy[-2] = 4*$n+1;
  393. #$copy[-2] = 2*$n+1;
  394. $copy[rand @copy] = random_prime(1e4);
  395. $copy[rand @copy] = random_prime(1e4);
  396. #$copy[rand @copy] = random_prime(1e4);
  397. #$copy[rand @copy] = 2*int(rand(1e3))+1;
  398. #$copy[-3] = 2*int(rand(1e9))+1;
  399. #$copy[-2] = 3*$n+1;
  400. #$copy[-1] = 1;
  401. #$copy[rand(@copy-9)+8] =
  402. if (is_pseudoprime(vecprod(@copy), 2)) {
  403. if (vecprod(@copy) ne $psp) {
  404. say vecprod(@copy);
  405. }
  406. }
  407. }
  408. exit;
  409. my @psp = qw(
  410. 4788772759754985
  411. 38353281032877674865
  412. 2638294879881771254145
  413. 24773130788808935997465
  414. 39898386437874778336787265
  415. 85866492509341408342261785
  416. 198408004487570768403697185
  417. );
  418. forsquarefree {
  419. #if ($_ % 80 == 9) {
  420. if ($_ % 2 == 1 and $_ > 1) {
  421. foreach my $n(@psp) {
  422. if (is_pseudoprime(mulint($n, $_), 2)) {
  423. say mulint($n, $_);
  424. }
  425. #~ my ($p, $q) = factor($_);
  426. #~ $n = Math::GMPz->new($n);
  427. #~ if ($n % $p == 0) {
  428. #~ if (is_pseudoprime(($n/$p)*$q, 2)) {
  429. #~ say (($n/$p)*$q);
  430. #~ }
  431. #~ }
  432. #~ if ($n % $q == 0) {
  433. #~ if (is_pseudoprime(($n/$q)*$p, 2)) {
  434. #~ say (($n/$q)*$p);
  435. #~ }
  436. #~ }
  437. }
  438. }
  439. } 1e7;
  440. __END__