aboutsummaryrefslogtreecommitdiff
path: root/challenge-169
diff options
context:
space:
mode:
authorNiels van Dijke <perlboy@cpan.org>2022-06-19 22:31:17 +0000
committerNiels van Dijke <perlboy@cpan.org>2022-06-19 22:31:17 +0000
commit39682c26319bf11bd3ea14efdc4e0cd7b9b78d34 (patch)
treee41ca8d87047e2e1f4a8d49f3db77b6c8f7434db /challenge-169
parentf39f008976103aaea8dcdb1df64821c29dcaa3fd (diff)
downloadperlweeklychallenge-club-39682c26319bf11bd3ea14efdc4e0cd7b9b78d34.tar.gz
perlweeklychallenge-club-39682c26319bf11bd3ea14efdc4e0cd7b9b78d34.tar.bz2
perlweeklychallenge-club-39682c26319bf11bd3ea14efdc4e0cd7b9b78d34.zip
w169 - Task 1 (Didn't have time for task 2)
Diffstat (limited to 'challenge-169')
-rwxr-xr-xchallenge-169/perlboy1967/perl/ch-1.pl51
1 files changed, 51 insertions, 0 deletions
diff --git a/challenge-169/perlboy1967/perl/ch-1.pl b/challenge-169/perlboy1967/perl/ch-1.pl
new file mode 100755
index 0000000000..abbee6d5bc
--- /dev/null
+++ b/challenge-169/perlboy1967/perl/ch-1.pl
@@ -0,0 +1,51 @@
+#!/bin/perl
+
+=pod
+
+The Weekly Challenge - 169
+ - https://theweeklychallenge.org/blog/perl-weekly-challenge-169/#TASK1
+
+Author: Niels 'PerlBoy' van Dijke
+
+Task 1: Brilliant Numbers
+Submitted by: Mohammad S Anwar
+
+Write a script to generate first 20 Brilliant Numbers.
+
+ || Brilliant numbers are numbers with two prime factors of the same length.
+
+The number should have exactly two prime factors, i.e. it’s the product of two
+primes of the same length.
+
+=cut
+
+use v5.16;
+use warnings;
+
+use Math::Factor::XS qw(prime_factors);
+
+# Prototype(s)
+sub isBrilliantNumber($\@);
+
+my ($n,$b,@f) = (0,1);
+
+while ($n < 20) {
+ if (isBrilliantNumber($b,@f)) {
+ printf "%s => (%s)\n", $b, join(',',@f);
+ $n++;
+ }
+ $b++;
+}
+
+
+sub isBrilliantNumber($\@) {
+ my ($n,$arF) = @_;
+
+ my @f = prime_factors($n);
+ if (scalar @f == 2 && length($f[0]) == length($f[1])) {
+ @$arF = @f;
+ return 1;
+ }
+
+ return 0;
+}