-
Notifications
You must be signed in to change notification settings - Fork 0
/
abundant_fermat_pseudoprimes.pl
executable file
·143 lines (128 loc) · 6.96 KB
/
abundant_fermat_pseudoprimes.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
#!/usr/bin/perl
# Shyam Sunder Gupta asked: "Can you find the smallest abundant number which is also pseudoprime (base-2)".
# If it exists it is a term of A328691 and it is larger than 2^64.
# Several abundant Fermat pseudoprimes to base 2:
# 898943937249247967890084629421065
# 222042825169546323981793629414604065
# 2596282479202818734176082185090403265
# 12796625128232187655293894634808130945
# 3470207934739664512679701940114447720865
use 5.020;
use strict;
use warnings;
use ntheory qw(:all);
use Math::AnyNum qw(is_smooth);
use Math::GMPz;
while (<>) {
next if /^\h*#/;
/\S/ or next;
my $n = (split(' ', $_))[-1];
$n || next;
next if $n < ~0;
#next if length($n) > 60;
#next if length($n) <= 65;
$n = Math::GMPz->new($n);
$n % (3 * 5 * 17 * 23 * 29 * 43) == 0 or next;
is_pseudoprime($n, 2) || next;
#is_smooth($n, 1e8) || next;
#is_smooth($n, 1e6) || next;
if (divisor_sum($n) > 2 * $n) {
say $n;
}
}
__END__
#
## Fermat pseudoprimes to base 2 that are also abundant numbers (i.e.: sigma(n) > 2*n):
#
2596282479202818734176082185090403265
12796625128232187655293894634808130945
3470207934739664512679701940114447720865
45737634436431198836267992527251680040385
43502516985853501805353173385040503830615585
35681625351759414447784656906886402710161726145
8360879247062142072476242452391089552717501127905
8912541157773704856248850726153279748167674593185
83608400947968548043246176345350430162640535738785
18324199296528369643710689094829325758885303308048705
28372903573883820144872703713489286337144948101390945
224906436908031007079087447570104271409064434499731585
555385881837969384461386805114747741697881330167516065
1712928022736001657437035367611577294639589883088004705
16068949403392919154075612370341935224248372485244305505
779551322951482550340219275431845821818182317453398081665
3243771449934489563420280731826154811398657190689660346145
3521782835397676946933688469202532605577443098683804760065
4458187585944145020727100588605702609629401058115042012065
4480869812756224982980361246336523683775981809514868335105
16434919376458405148335185917085137785166951881078959368385
43225442828665203343551053810841050234922320859806912515905
83929961868126246820141143600626161173163737039232406516865
839363327864729874359487191942135344679553853090370502721185
1286754527135281077618073992106243955350494847060895462784705
2215351116173516203829705825916100548160379300591878217129985
2768347873560407762689098818902929900263309343470278283249985
12492495099028177216769135406790403675538624687838083630973185
14412192513054899010532954508122570676822692536898161874517985
21735355747738858221724407770659644200025485058748770371779905
27974863795893090960230965223628876028701381681601300706365185
49619164548494076358485360085028000849457165404574906593198145
96575617503741482021640791861376593523200847532295910631907265
149824307412014285797537763203072744032701914138320937509441345
699177242901215844952491647476996222051262265977000379251093505
738403120358970712811833990095379996524800144348145698260302465
856832446705363063968603643425895801652503477562304269424808545
922723577834882097089155855930848203988124904422542752754582465
4941808546075660419264067599369649016479539371630778521435976705
9927261326727173538524778929692075351655991423102586482352143105
12630752002984063837849752947314580680730361716351272615755670785
14528634372802949026298064925609466349944920915994190406309741665
16130751161320787755103386812035143794353858112781193905695834945
18571834138590672838737539649602176887168943632625142230078924065
44181041092632451863994500365125906091058066549365702838575250945
47075694600925132483952687753066135110680206374164000678725510145
161306756243551064414812486850059032308088022654178585965299697665
270517778706516049735780368824786736766144869871664141194220947905
425774977070736599762642651800293112652587778918654850184863207105
532057082863195449134505969301410806321306212649583194092664367105
1552745838841398266508887779222077058590768444594055433270772979905
1986941770042678162666251666146672833343399713562953797309232156545
2400970110567522463822510441237268053612794894629664807287629344705
2559389305441368380150335007836794845224791838083291551448755206785
2674908522805588552447926211678208272203960669774362737458995648385
4000989020688383007217443071318208557028535897726078316093730258945
4257729832547320435980592050650497881620944345772843174944677901185
5144805056626190173714951121678010732658213058196345455514379104705
5320545913501092447675195491124737936843959756711740708422094421185
5376572997524080830919669899224904570584204649531998786658444000705
7159462077869196281550233195559335160740556096112424610783300898305
13230761331990867971803226521036245353513598702573374772813677034465
141915910911151658207444810058401367672090914142703166185742311655745
177341012594819494885856131418917508869089689755681759280161467695745
194441849358859857219778632532971499408791064774642948981936116486465
275555233487498558175486033052843225721174034178141132425578170707585
827588008789372248232972619716809961612337262401865327317326749111105
9047618972435603987488318917325039705326960903669701782446291971297985
20345962912818531380995935633735010564403882802767699886384333622799745
31002029402716809723076056285173395596388361337974544972428844793329345
98135646736775791130334272511998311961281252715947164322187965016321505
158228717341641101850242745532175800347309503811524146338053803768435905
298426881004444857035142668952028656121735559671865295886609671326881665
477200401448751408742391000348527447957160578206773218032128392863373185
491896708780692913086233336161177111688288417736742053147590609457629505
549415623484792134017815332905067598502154815002674095988532885398434145
818305869706767156552417927990671139362374156647120048322142479862448705
1022571680753515460796038847025736758295851157521699581973767593090808705
2295508589882446976051695017523797786297580125201389942619734198699846145
49703324509233517736815598642522171403771449280803971215696315214592055105
52959786989662810391421187150525098081029601150799478664269145362802883905
77154914347075639328238350277759147903920878881888601579785879550480553985
211800315034836178190722054740339982902942131858187234588082926354005824065
354093694899792799619712318861105817241976877895323554939886753585750673985
446408635686915791658245194570807497432322131244193985466843966890282348705
21964196287740327424915900630414564134022820739432346310976391168802191248705
279587678207880128865500925649495001469668644252585638451105880984496125904705
10595048795419110480015845780225874470152405260516539603890840419286709008962945
20887753712520609532567846922583920638944138819042665757801755042611335817254465
2358873111029282250146624760081781129993667737756440508938417047652057231540754785
558040645054574882730705691519647410000213194490794024175524610490957711126395319545985
34614889903601849092796513471514125618069869647091203932346017527902673626915488809464705