diff options
| author | drbaggy <js5@sanger.ac.uk> | 2021-12-03 08:11:35 +0000 |
|---|---|---|
| committer | drbaggy <js5@sanger.ac.uk> | 2021-12-03 08:11:35 +0000 |
| commit | fb0b052f476665a5378dc85348fe987f50267cc7 (patch) | |
| tree | a9bc49d468c62293e75cf5a82da2b68b363da0c2 | |
| parent | 5b2710ed8390fd90f652e6b9e064613dd90e630d (diff) | |
| download | perlweeklychallenge-club-fb0b052f476665a5378dc85348fe987f50267cc7.tar.gz perlweeklychallenge-club-fb0b052f476665a5378dc85348fe987f50267cc7.tar.bz2 perlweeklychallenge-club-fb0b052f476665a5378dc85348fe987f50267cc7.zip | |
ch-2.pl solution at last
| -rw-r--r-- | challenge-141/james-smith/perl/ch-2.pl | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/challenge-141/james-smith/perl/ch-2.pl b/challenge-141/james-smith/perl/ch-2.pl new file mode 100644 index 0000000000..5e4af7babb --- /dev/null +++ b/challenge-141/james-smith/perl/ch-2.pl @@ -0,0 +1,28 @@ +#!/usr/local/bin/perl + +use strict; + +use warnings; +use feature qw(say); +use Test::More; +use Benchmark qw(cmpthese timethis); +use Data::Dumper qw(Dumper); + +my @TESTS = ( + [ [1234,2], 9 ], + [ [ 768,4], 3 ], +); + +is( like_numbers(@{$_->[0]}), $_->[1] ) foreach @TESTS; + +done_testing(); + +sub like_numbers { + scalar grep { !($_%$_[1]) } get_nums( $_[0] ); +} + +sub get_nums { + my @nums = split //, my $m = shift; + return map { my $n=$_<<1; join '',grep{($n>>=1)&1} @nums } 1..(1<<@nums)-2; +} + |
