-
Notifications
You must be signed in to change notification settings - Fork 0
/
carmichael_where_gpf(n)+1|n+1.pl
executable file
·226 lines (212 loc) · 5.2 KB
/
carmichael_where_gpf(n)+1|n+1.pl
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
#!/usr/bin/perl
# Find Carmichael numbers m such that gpf(m)+1 divides m+1, where gpf(n) is the greatest prime factor of n.
use 5.020;
use strict;
use warnings;
use ntheory qw(:all);
use Math::Prime::Util::GMP;
use Math::GMPz;
my %table;
while (<>) {
next if /^\h*#/;
/\S/ or next;
my $n = (split(' ', $_))[-1];
$n || next;
next if ($n < ~0);
#next if length($n) > 30;
#next if length($n) <= 30;
is_smooth($n, 1e5) || next;
Math::Prime::Util::GMP::is_carmichael($n) || next;
$n = Math::GMPz->new($n);
my $np1 = $n + 1;
my $pp1 = Math::GMPz->new((Math::Prime::Util::GMP::factor($n))[-1]) + 1;
if ($np1 % $pp1 == 0) {
say $n;
}
}
__END__
687979968481
1928376089641
2638625591701
3148470889201
3152088903601
14682521533681
19656816822721
37333372057201
47003559452641
80643055074121
129235662445121
140940741166849
196945133626801
336301807660741
345186571310209
439931062854361
490464498901105
531259716925081
707472049888801
735691828435201
778963619135521
788801817683881
893955162830521
1464274069272001
2251648591728481
3908308008236941
5329243598526001
5581318384852561
13326785007243841
33974062308537121
34032752544117601
54853966343767501
68134265628726529
110142636908589649
114346331280789301
258874196100780961
364059505086209101
380775595507169941
627103832138305831
875815255956300661
905669264186473501
908953689898563121
1309513581297673921
1403552667045816001
1777998645730488061
1965645625719291121
4564042295765073121
8605736094003523201
14666471748992794501
17907650644750888141
# Several terms greater than 2^64:
25395126556849015681
25670327260129974721
27453375098872012081
29088589230815830561
32363235147264315841
34426189228595109121
35463666140029141561
52275752393848386481
62309629064195865001
77580771941876631121
90079988489882758081
168065483489652498751
199223880000952746241
200658491159815177201
245769593124148354801
354370628561064655681
382549371896240035201
645974802512602264801
756195582980408180401
785263101880313064961
1519294167026632321921
1553120766503217777601
1660738557696031376641
2285736609330911499841
2316867089206526090641
2539539788025094720993
3844582472495849389201
3974973304437208810801
5745765587660958183661
7345592295670692498601
7784121510203744664001
12306032359713521111761
13592344634103118584961
24901489248594616707841
27398746344734309941201
28759363034320316270881
28898704915231806396721
42238902029088187019521
44259715527918397284961
44933748053412661497601
49896683368086327415201
59269563210188725244929
64866371636584746791641
82056444139019101264921
105724321045634275656001
106818471377356830206401
148236129496832039913601
150185227732060225708081
162576414744777836369281
170845977240460180827001
202192019139820500665281
211376155831990085740609
367729601354141677217281
457556171999150093171401
946822121748521304889681
971561092393398173647681
1479275066371649981884801
1518670829645816478557185
2221582493138548514264641
2583036350028256258419361
3741639517813662154969201
4353399963943665642006481
4752679189366827697857121
4985800879433683040119081
5140345998361063184251201
6515875799015153929377601
6644759049274785821432401
7451715049399361389195009
9572847881509092466123201
9920799542911938327843841
11429843992283565132329761
14281445025483925282256341
15046735150098238783331521
16003963913222992236753601
26255697283434149514698401
26536378370118933277654561
37956917912275974500007121
50864042794337177947395841
53838796629630731461011361
70448402936151446699102401
77203047440534928007033621
101448203859799949831587921
152228949469971146584035841
153182969611377280413543601
157120503203925934457225761
166138636728477035687486401
290119740065156401440463081
375623792044867850082496129
461619484416925681760323201
518520502729287368754806881
1094438178075874460564127601
1510188037356224268738591841
1582057688774650167291024241
2656010927762565148782426001
3191429970417668180402412289
3550423080733954581055929121
4101434917427404579137922801
5885203782237464829811363201
8005002456003532001685845281
15853017707070075884775600001
35496072668482181755032720961
41776412643236814600746021761
41802516772451158398470708641
50292280779484695923071537921
147052167027492253274631354241
219721303711695791724534254881
289060368488920116147802548961
308422188170913334702771676881
362350609128959018854314198241
466321806397989865100220534001
513826535820741605005186812961
813725564100623864370234077329
1772125047039751287399168619681
1998753093580854410139109230721
3583819576269084635046099518401
6630915653380602121815274284001
9960166339820794177369057167841
27862965428490514084103037288901
84946195217395923522262271643601
108358734004334396558128288636201
110786073848039453414026247881201
132723971937121939325486883979201
207003778383343389152828117027041
494503295956608843318626383012801
83777616171283956479880597064031761
186968537210944556958664869343557121
377477333536566088026055484442000721
4253868348559169906407314892030307373601
4409073358405682930338554742138343480161
8023683568508597317622533905820046906161
54839905309919230706346088167935760165121
242100437012795075332140050513303732500801
172337741763460554969448020521963085242381041
212188147821422742722688381676535446578604386914848248361173601