Wolstenholme numbers: Difference between revisions
Content added Content deleted
(→{{header|ALGOL 68}}: Tweak) |
SqrtNegInf (talk | contribs) (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}}== |