aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2019-08-25 15:27:48 +0100
committerGitHub <noreply@github.com>2019-08-25 15:27:48 +0100
commitca23ad2368ce5bf5ec93947c92320ed5e47911fd (patch)
treeb36a133669bdfcc61d0ccb8238bcef2293e89569
parent991ae03c3a680a64e44f88efafd65f4bfba9c95e (diff)
parentc7968ed6f76d6f6a64ca47c2f6d2dabf648236d2 (diff)
downloadperlweeklychallenge-club-ca23ad2368ce5bf5ec93947c92320ed5e47911fd.tar.gz
perlweeklychallenge-club-ca23ad2368ce5bf5ec93947c92320ed5e47911fd.tar.bz2
perlweeklychallenge-club-ca23ad2368ce5bf5ec93947c92320ed5e47911fd.zip
Merge pull request #550 from kianmeng/master
Add t1 answer
-rw-r--r--challenge-022/kian-meng-ang/perl5/ch-1.pl40
1 files changed, 40 insertions, 0 deletions
diff --git a/challenge-022/kian-meng-ang/perl5/ch-1.pl b/challenge-022/kian-meng-ang/perl5/ch-1.pl
new file mode 100644
index 0000000000..2ae1f916b1
--- /dev/null
+++ b/challenge-022/kian-meng-ang/perl5/ch-1.pl
@@ -0,0 +1,40 @@
+#!/usr/bin/env perl
+# vi:et:sw=4 ts=4 ft=perl
+
+use strict;
+use warnings;
+use utf8;
+use feature qw(say);
+use constant SEXY_PAIRS => 10;
+use constant SEXY_DIFF => 6;
+use Math::Prime::Util qw(is_prime);
+
+MAIN: {
+ my ($i, @pairs) = (1, ());
+ while (scalar @pairs <= SEXY_PAIRS) {
+ my $primes = sexy_primes($i);
+ push @pairs, $primes if ($primes);
+ $i++;
+ }
+ say qq|Total ${\SEXY_PAIRS} sexy prime pairs:|;
+ say join q|,|, map { "($_->[0],$_->[1])" } @pairs;
+}
+
+sub sexy_primes {
+ my ($n) = @_;
+ return (is_prime($n) && is_prime($n + SEXY_DIFF))
+ ? [$n, $n + SEXY_DIFF] : undef
+}
+
+1;
+
+__END__
+
+Write a script to print first 10 Sexy Prime Pairs. Sexy primes are prime
+numbers that differ from each other by 6. For example, the numbers 5 and 11 are
+both sexy primes, because 11 - 5 = 6. The term “sexy prime” is a pun stemming
+from the Latin word for six: sex.
+See https://en.wikipedia.org/wiki/Sexy_prime
+
+$ perl ch-1.pl
+(5,11),(7,13),(11,17),(13,19),(17,23),(23,29),(31,37),(37,43),(41,47),(47,53),(53,59)