Wolstenholme numbers: Difference between revisions

Content added Content deleted
(Added Perl)
Line 316: Line 316:
935 984 1202 1518 1539
935 984 1202 1518 1539
1770 1811 2556 2762 2769</syntaxhighlight>
1770 1811 2556 2762 2769</syntaxhighlight>

=={{header|Perl}}==
{{libheader|ntheory}}
<syntaxhighlight lang="perl" line>
use strict;
use warnings;
use ntheory 'is_prime';
use Math::BigRat try => 'GMP';

sub abbr ($d) { my $l = length $d; $l < 41 ? $d : substr($d,0,20) . '..' . substr($d,-20) . " ($l digits)" }

my @W = Math::BigRat->new('1/1');
push @W, $W[-1] + Math::BigRat->new(join '/', 1, $_**2) for 2..10000;

print "Wolstenholme numbers:\n";
printf "%5s: %s\n", $_, abbr $W[$_-1]->numerator() for 1..20, 5e2, 1e3, 2.5e3, 5e3, 1e4;

push @res, "\nPrime Wolstenholme numbers:";
my($n,$c) = (0,0);
do { printf "%5s: %s\n", ++$c, abbr $W[$n]->numerator() if is_prime $W[$n++]->numerator() } until $c == 15;
</syntaxhighlight>
{{out}}
<pre>
Wolstenholme numbers:
1: 1
2: 5
3: 49
4: 205
5: 5269
6: 5369
7: 266681
8: 1077749
9: 9778141
10: 1968329
11: 239437889
12: 240505109
13: 40799043101
14: 40931552621
15: 205234915681
16: 822968714749
17: 238357395880861
18: 238820721143261
19: 86364397717734821
20: 17299975731542641
500: 40989667509417020364..48084984597965892703 (434 digits)
1000: 83545938483149689478..99094240207812766449 (866 digits)
2500: 64537911900230612090..12785535902976933153 (2164 digits)
5000: 34472086597488537716..22525144829082590451 (4340 digits)
10000: 54714423173933343999..49175649667700005717 (8693 digits)

Prime Wolstenholme numbers:
1: 49
2: 1077749
3: 40931552621
4: 17299975731542641
5: 36192394223738644958..27171797714854540029 (104 digits)
6: 23399991186667634597..05251135978219980231 (157 digits)
7: 99186617154523592223..50362924433949417963 (216 digits)
8: 28347814248165384870..83313777814247048059 (318 digits)
9: 78440689422637922023..44908392487283498419 (520 digits)
10: 22706918799928729936..16974005034583964989 (649 digits)
11: 27310408893789363209..34843218392244388271 (935 digits)
12: 61105071073093439687..74315550320844865337 (985 digits)
13: 15086867940394459185..97600970282504918693 (1202 digits)
14: 23541939894356277413..89911056856140468879 (1518 digits)
15: 40306790923909992915..09805498635135576941 (1539 digits)
</pre>


=={{header|Phix}}==
=={{header|Phix}}==