aboutsummaryrefslogtreecommitdiff
path: root/challenge-173
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-07-16 17:48:35 +0100
committerGitHub <noreply@github.com>2022-07-16 17:48:35 +0100
commit7e4d17cc4e4296afa964a04eebb69a95850e06b1 (patch)
treec69dbd5ffef3eac6dd35f068bcc3ca482a04266a /challenge-173
parentedf94eeec3c29a9cfdf35792f43096a5cebae6bf (diff)
parentf91b16b09f8db78df9bdfee2da0cebe468d36699 (diff)
downloadperlweeklychallenge-club-7e4d17cc4e4296afa964a04eebb69a95850e06b1.tar.gz
perlweeklychallenge-club-7e4d17cc4e4296afa964a04eebb69a95850e06b1.tar.bz2
perlweeklychallenge-club-7e4d17cc4e4296afa964a04eebb69a95850e06b1.zip
Merge pull request #6451 from LubosKolouch/master
Challenge 173 LK Perl Python
Diffstat (limited to 'challenge-173')
-rw-r--r--challenge-173/lubos-kolouch/perl/ch-1.pl22
-rw-r--r--challenge-173/lubos-kolouch/perl/ch-2.pl34
-rw-r--r--challenge-173/lubos-kolouch/python/ch-1.py15
-rw-r--r--challenge-173/lubos-kolouch/python/ch-2.py28
4 files changed, 99 insertions, 0 deletions
diff --git a/challenge-173/lubos-kolouch/perl/ch-1.pl b/challenge-173/lubos-kolouch/perl/ch-1.pl
new file mode 100644
index 0000000000..ee8763e6cd
--- /dev/null
+++ b/challenge-173/lubos-kolouch/perl/ch-1.pl
@@ -0,0 +1,22 @@
+use strict;
+use warnings;
+
+sub is_esthetic_number {
+ my $what = shift;
+
+ # where is enumerate when you need it
+
+ my @arr = split //, $what;
+ for my $elem ( 0 .. scalar @arr - 2 ) {
+ return 0 unless abs( $arr[$elem] - $arr[ $elem + 1 ] ) == 1;
+ }
+
+ return 1;
+}
+
+use Test::More;
+
+is( is_esthetic_number(5456), 1, 'Test 5456' );
+is( is_esthetic_number(120), 0, 'Test 120' );
+
+done_testing;
diff --git a/challenge-173/lubos-kolouch/perl/ch-2.pl b/challenge-173/lubos-kolouch/perl/ch-2.pl
new file mode 100644
index 0000000000..43359e0c4b
--- /dev/null
+++ b/challenge-173/lubos-kolouch/perl/ch-2.pl
@@ -0,0 +1,34 @@
+use strict;
+use warnings;
+use Math::BigInt;
+
+sub generate_sylvestver_numbers {
+ my $limit = shift;
+
+ my @items = ( Math::BigInt->new(2) );
+ my $product = $items[0];
+
+ while ( scalar @items < $limit ) {
+ push @items, Math::BigInt->new( $product + 1 );
+ $product *= $items[-1];
+ }
+
+ return \@items;
+}
+
+use Test::More;
+
+is_deeply(
+ generate_sylvestver_numbers(10),
+ [
+ 2, 3, 7, 43, 1807, 3263443,
+ Math::BigInt->new('10650056950807'),
+ Math::BigInt->new('113423713055421844361000443'),
+ Math::BigInt->new('12864938683278671740537145998360961546653259485195807'),
+ Math::BigInt->new(
+'165506647324519964198468195444439180017513152706377497841851388766535868639572406808911988131737645185443'
+ )
+ ]
+);
+
+done_testing;
diff --git a/challenge-173/lubos-kolouch/python/ch-1.py b/challenge-173/lubos-kolouch/python/ch-1.py
new file mode 100644
index 0000000000..d644b5fe30
--- /dev/null
+++ b/challenge-173/lubos-kolouch/python/ch-1.py
@@ -0,0 +1,15 @@
+""" Challenge 173 Task 1 LK """
+
+
+def is_esthetic_number(what: int) -> bool:
+ """Check if the number is esthetic"""
+
+ for pos, num in enumerate(str(what)[0:-1]):
+ if abs(int(num) - int(str(what)[pos + 1])) != 1:
+ return False
+
+ return True
+
+
+assert is_esthetic_number(5456) == 1
+assert is_esthetic_number(120) == 0
diff --git a/challenge-173/lubos-kolouch/python/ch-2.py b/challenge-173/lubos-kolouch/python/ch-2.py
new file mode 100644
index 0000000000..7e58fa2192
--- /dev/null
+++ b/challenge-173/lubos-kolouch/python/ch-2.py
@@ -0,0 +1,28 @@
+""" Generate Sylvestver numbers """
+
+
+def generate_sylvestver_numbers(limit: int) -> list:
+ """Generate the Sylvester numbers"""
+
+ items = [2]
+ product = items[0]
+
+ while len(items) < limit:
+ items.append(product + 1)
+ product *= items[-1]
+
+ return items
+
+
+assert generate_sylvestver_numbers(10) == [
+ 2,
+ 3,
+ 7,
+ 43,
+ 1807,
+ 3263443,
+ 10650056950807,
+ 113423713055421844361000443,
+ 12864938683278671740537145998360961546653259485195807,
+ 165506647324519964198468195444439180017513152706377497841851388766535868639572406808911988131737645185443,
+]