From b44388d3b4a2250f04235fd1d51096614bf72998 Mon Sep 17 00:00:00 2001 From: Niels van Dijke Date: Mon, 29 Nov 2021 09:59:04 +0000 Subject: Task 1 & 2 --- challenge-141/perlboy1967/perl/ch-1.pl | 49 +++++++++++++++++++++++++++++++ challenge-141/perlboy1967/perl/ch-2.pl | 53 ++++++++++++++++++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100755 challenge-141/perlboy1967/perl/ch-1.pl create mode 100755 challenge-141/perlboy1967/perl/ch-2.pl diff --git a/challenge-141/perlboy1967/perl/ch-1.pl b/challenge-141/perlboy1967/perl/ch-1.pl new file mode 100755 index 0000000000..2c8fa60b22 --- /dev/null +++ b/challenge-141/perlboy1967/perl/ch-1.pl @@ -0,0 +1,49 @@ +#!/bin/perl + +=pod + +The Weekly Challenge - 140 + - https://perlweeklychallenge.org/blog/perl-weekly-challenge-140/#TASK1 + +Author: Niels 'PerlBoy' van Dijke + +TASK #1 › Number Divisors +Submitted by: Mohammad S Anwar + +Write a script to find lowest 10 positive integers having exactly 8 divisors. + +=cut + +use v5.16; +use strict; +use warnings; + +use Data::Printer output => 'stdout'; + +sub hasNDivisors($$); + +my $n = 24; +my @n; + +while (scalar(@n) < 10) { + if (hasNDivisors($n,8)) { + push(@n,$n); + } + $n++; +} + +p @n; + + +sub hasNDivisors($$) { + my ($n,$count) = @_; + + my $i = 1; + my @d = ($i); + while ($i < $n) { + push(@d,$i) if ($n % $i == 0); + $i++; + } + + return (scalar(@d) == $count); +} diff --git a/challenge-141/perlboy1967/perl/ch-2.pl b/challenge-141/perlboy1967/perl/ch-2.pl new file mode 100755 index 0000000000..0fb48e8b99 --- /dev/null +++ b/challenge-141/perlboy1967/perl/ch-2.pl @@ -0,0 +1,53 @@ +#!/bin/perl + +=pod + +The Weekly Challenge - 140 + - https://perlweeklychallenge.org/blog/perl-weekly-challenge-140/#TASK2 + +Author: Niels 'PerlBoy' van Dijke + +TASK #2 › Like Numbers +Submitted by: Mohammad S Anwar + +i You are given positive integers, $m and $n. + +Write a script to find total count of integers created using the digits of $m +which is also divisible by $n. + +Repeating of digits are not allowed. Order/Sequence of digits can’t be +altered. You are only allowed to use (n-1) digits at the most. For example, +432 is not acceptable integer created using the digits of 1234. Also for 1234, +you can only have integers having no more than three digits. + +=cut + +use v5.16; +use strict; +use warnings; + +use List::MoreUtils qw(uniq); +use Algorithm::Combinatorics qw(combinations); + +sub likeNumbers($$); + +my @n = likeNumbers($ARGV[0],$ARGV[1]); +printf "%d => (%s)\n", scalar(@n), join(',',@n); + + +sub likeNumbers($$) { + my ($m,$n) = @_; + + my @res; + + my @digits = uniq split //,$m; + foreach my $len (1 .. scalar(@digits)) { + my $iter = combinations(\@digits,$len); + while (my $ar = $iter->next) { + my $val = join('',@$ar); + push(@res,$val) if ($val % $n == 0 and $val != $m); + } + } + + return @res; +} -- cgit From 0a494c3c02450c957127182b7b63d418cd1aaca6 Mon Sep 17 00:00:00 2001 From: Niels van Dijke Date: Mon, 29 Nov 2021 10:00:43 +0000 Subject: Wrong weeknumber (fixed typos) --- challenge-141/perlboy1967/perl/ch-1.pl | 4 ++-- challenge-141/perlboy1967/perl/ch-2.pl | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/challenge-141/perlboy1967/perl/ch-1.pl b/challenge-141/perlboy1967/perl/ch-1.pl index 2c8fa60b22..9cb31d273f 100755 --- a/challenge-141/perlboy1967/perl/ch-1.pl +++ b/challenge-141/perlboy1967/perl/ch-1.pl @@ -2,8 +2,8 @@ =pod -The Weekly Challenge - 140 - - https://perlweeklychallenge.org/blog/perl-weekly-challenge-140/#TASK1 +The Weekly Challenge - 141 + - https://perlweeklychallenge.org/blog/perl-weekly-challenge-141/#TASK1 Author: Niels 'PerlBoy' van Dijke diff --git a/challenge-141/perlboy1967/perl/ch-2.pl b/challenge-141/perlboy1967/perl/ch-2.pl index 0fb48e8b99..51364c6f0b 100755 --- a/challenge-141/perlboy1967/perl/ch-2.pl +++ b/challenge-141/perlboy1967/perl/ch-2.pl @@ -2,8 +2,8 @@ =pod -The Weekly Challenge - 140 - - https://perlweeklychallenge.org/blog/perl-weekly-challenge-140/#TASK2 +The Weekly Challenge - 141 + - https://perlweeklychallenge.org/blog/perl-weekly-challenge-141/#TASK2 Author: Niels 'PerlBoy' van Dijke -- cgit