Gaussian primes: Difference between revisions

Line 201:
8 - 5im 5 + 8im -4 + 9im -4 - 9im 9 + 4im -9 + 4im 9 - 4im -9 - 4im 4 - 9im 4 + 9im
</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}}==
Anonymous user