diff options
| author | Niels van Dijke <perlboy@cpan.org> | 2022-06-19 22:31:17 +0000 |
|---|---|---|
| committer | Niels van Dijke <perlboy@cpan.org> | 2022-06-19 22:31:17 +0000 |
| commit | 39682c26319bf11bd3ea14efdc4e0cd7b9b78d34 (patch) | |
| tree | e41ca8d87047e2e1f4a8d49f3db77b6c8f7434db /challenge-169 | |
| parent | f39f008976103aaea8dcdb1df64821c29dcaa3fd (diff) | |
| download | perlweeklychallenge-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-x | challenge-169/perlboy1967/perl/ch-1.pl | 51 |
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; +} |
