aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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,
+]