diff options
| -rw-r--r-- | challenge-173/lubos-kolouch/perl/ch-1.pl | 22 | ||||
| -rw-r--r-- | challenge-173/lubos-kolouch/perl/ch-2.pl | 34 | ||||
| -rw-r--r-- | challenge-173/lubos-kolouch/python/ch-1.py | 15 | ||||
| -rw-r--r-- | challenge-173/lubos-kolouch/python/ch-2.py | 28 |
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, +] |
