Gaussian primes: Difference between revisions
Content added Content deleted
m (→{{header|Python}}: docstring) |
|||
Line 201: | Line 201: | ||
8 - 5im 5 + 8im -4 + 9im -4 - 9im 9 + 4im -9 + 4im 9 - 4im -9 - 4im 4 - 9im 4 + 9im |
8 - 5im 5 + 8im -4 + 9im -4 - 9im 9 + 4im -9 + 4im 9 - 4im -9 - 4im 4 - 9im 4 + 9im |
||
</pre> |
</pre> |
||
=={{header|Perl}}== |
|||
<lang perl>#!/usr/bin/perl |
|||
use strict; # https://rosettacode.org/wiki/Gaussian_primes |
|||
use warnings; |
|||
use ntheory qw( is_prime ); |
|||
my ($plot, @primes) = gaussianprimes(10); |
|||
print "Primes within 10\n", join(', ', @primes) =~ s/.{94}\K /\n/gr; |
|||
($plot, @primes) = gaussianprimes(50); |
|||
print "\n\nPlot within 50\n$plot"; |
|||
sub gaussianprimes |
|||
{ |
|||
my $size = shift; |
|||
my $plot = ( ' ' x (2 * $size + 1) . "\n" ) x (2 * $size + 1); |
|||
my @primes; |
|||
for my $A ( -$size .. $size ) |
|||
{ |
|||
my $limit = int sqrt $size**2 - $A**2; |
|||
for my $B ( -$limit .. $limit ) |
|||
{ |
|||
my $norm = $A**2 + $B**2; |
|||
is_prime( $norm ) or ($norm - 3) % 4 == 0 or next; |
|||
push @primes, "$A ${B}i"; |
|||
substr $plot, ($B + $size + 1) * (2 * $size + 2) + $A + $size + 1, 1, 'X'; |
|||
} |
|||
} |
|||
return $plot, @primes; |
|||
}</lang> |
|||
{{out}} |
|||
<pre> |
|||
Primes within 10 |
|||
-9 -4i, -9 4i, -8 -5i, -8 -3i, -8 3i, -8 5i, -7 -2i, -7 2i, -6 -5i, -6 -1i, -6 1i, -6 5i, |
|||
-5 -8i, -5 -6i, -5 -4i, -5 -2i, -5 2i, -5 4i, -5 6i, -5 8i, -4 -9i, -4 -5i, -4 -1i, -4 1i, |
|||
-4 5i, -4 9i, -3 -8i, -3 -2i, -3 2i, -3 8i, -2 -7i, -2 -5i, -2 -3i, -2 -1i, -2 1i, -2 3i, |
|||
-2 5i, -2 7i, -1 -6i, -1 -4i, -1 -2i, -1 -1i, -1 1i, -1 2i, -1 4i, -1 6i, 1 -6i, 1 -4i, |
|||
1 -2i, 1 -1i, 1 1i, 1 2i, 1 4i, 1 6i, 2 -7i, 2 -5i, 2 -3i, 2 -1i, 2 1i, 2 3i, 2 5i, |
|||
2 7i, 3 -8i, 3 -2i, 3 2i, 3 8i, 4 -9i, 4 -5i, 4 -1i, 4 1i, 4 5i, 4 9i, 5 -8i, 5 -6i, |
|||
5 -4i, 5 -2i, 5 2i, 5 4i, 5 6i, 5 8i, 6 -5i, 6 -1i, 6 1i, 6 5i, 7 -2i, 7 2i, 8 -5i, |
|||
8 -3i, 8 3i, 8 5i, 9 -4i, 9 4i |
|||
Plot within 50 |
|||
X X X X |
|||
X X |
|||
X X X X X X |
|||
X X X X X X X X |
|||
X X X X X X X X |
|||
X X X X X X X X |
|||
X X X X X X X X |
|||
X X X X X X X X X X |
|||
X X X X X X X X |
|||
X X X X X X X X X X X X |
|||
X X X X |
|||
X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X |
|||
X X X X X X X X |
|||
X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X |
|||
X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X |
|||
X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X XX XX X X X X X X X X X X |
|||
X X X X X X X X X X XX XX X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X |
|||
X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X |
|||
X X X X X X X X X X |
|||
X X X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X X X |
|||
X X X X X X X X |
|||
X X X X X X X X X X X X |
|||
X X X X X X X X X X X X X X |
|||
X X X X |
|||
X X X X X X X X X X X X |
|||
X X X X X X X X |
|||
X X X X X X X X X X |
|||
X X X X X X X X |
|||
X X X X X X X X |
|||
X X X X X X X X |
|||
X X X X X X X X |
|||
X X X X X X |
|||
X X |
|||
X X X X |
|||
</pre> |
|||
=={{header|Phix}}== |
=={{header|Phix}}== |