diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-07-13 23:55:31 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-07-13 23:55:31 +0100 |
| commit | 47b189c896e6478d5e74dc74d6e91fa6cbaffab9 (patch) | |
| tree | 48320154bc4b9cda0fcd4e5177c817620fe18c89 /challenge-173 | |
| parent | fbf64879852eec49f370950872ce34903e357dfe (diff) | |
| download | perlweeklychallenge-club-47b189c896e6478d5e74dc74d6e91fa6cbaffab9.tar.gz perlweeklychallenge-club-47b189c896e6478d5e74dc74d6e91fa6cbaffab9.tar.bz2 perlweeklychallenge-club-47b189c896e6478d5e74dc74d6e91fa6cbaffab9.zip | |
- Added solutions to the task "Esthetic Number" of week 173.
Diffstat (limited to 'challenge-173')
| -rw-r--r-- | challenge-173/mohammad-anwar/perl/ch-1.pl | 40 | ||||
| -rw-r--r-- | challenge-173/mohammad-anwar/python/ch-1.py | 38 | ||||
| -rw-r--r-- | challenge-173/mohammad-anwar/raku/ch-1.raku | 34 |
3 files changed, 112 insertions, 0 deletions
diff --git a/challenge-173/mohammad-anwar/perl/ch-1.pl b/challenge-173/mohammad-anwar/perl/ch-1.pl new file mode 100644 index 0000000000..615f10d980 --- /dev/null +++ b/challenge-173/mohammad-anwar/perl/ch-1.pl @@ -0,0 +1,40 @@ +#!/usr/bin/perl + +=head1 + +Week 173: + + https://theweeklychallenge.org/blog/perl-weekly-challenge-173 + +Task #1: Esthetic Number + + You are given a positive integer, $n. + + Write a script to find out if the given number is Esthetic Number. + +=cut + +use v5.36; +use Test2::V0; +use experimental qw(builtin); +use builtin qw(true false); + +ok esthetic_number(5456), 'Example 1'; +ok !esthetic_number(120), 'Example 2'; + +done_testing; + +# +# +# METHOD + +sub esthetic_number($n) { + die "ERROR: Missing number.\n" unless defined $n; + die "ERROR: Invalid number $n.\n" if $n < 0; + + my @n = split //, $n; + foreach my $i (1 .. @n-1) { + return false if abs($n[$i-1] - $n[$i]) != 1; + } + return true; +} diff --git a/challenge-173/mohammad-anwar/python/ch-1.py b/challenge-173/mohammad-anwar/python/ch-1.py new file mode 100644 index 0000000000..5d9e80c567 --- /dev/null +++ b/challenge-173/mohammad-anwar/python/ch-1.py @@ -0,0 +1,38 @@ +#!/usr/bin/python3 + +''' + +Week 173: + + https://theweeklychallenge.org/blog/perl-weekly-challenge-173 + +Task #1: Esthetic Number + + You are given a positive integer, $n. + + Write a script to find out if the given number is Esthetic Number. + +''' + +import unittest + +def is_esthetic_number(n): + s = str(n) + for i in range(1, len(s)): + if abs(int(s[i-1]) - int(s[i])) != 1: + return False + return True + +# +# +# Unit test class + +class TestPrimePartition(unittest.TestCase): + + def test_example_1(self): + self.assertTrue(is_esthetic_number(5456)) + + def test_example_2(self): + self.assertFalse(is_esthetic_number(120)) + +unittest.main() diff --git a/challenge-173/mohammad-anwar/raku/ch-1.raku b/challenge-173/mohammad-anwar/raku/ch-1.raku new file mode 100644 index 0000000000..82bbc1d7a0 --- /dev/null +++ b/challenge-173/mohammad-anwar/raku/ch-1.raku @@ -0,0 +1,34 @@ +#!/usr/bin/env raku + +=begin pod + +Week 173: + + https://theweeklychallenge.org/blog/perl-weekly-challenge-173 + +Task #1: Esthetic Number + + You are given a positive integer, $n. + + Write a script to find out if the given number is Esthetic Number. + +=end pod + +use Test; + +ok esthetic-number(5456), 'Example 1'; +ok !esthetic-number(120), 'Example 2'; + +done-testing; + +# +# +# METHOD + +sub esthetic-number(Int $n where $n > 0 --> Bool) { + my @n = $n.comb; + for 1 .. @n.end -> $i { + return False if abs(@n[$i-1] - @n[$i]) != 1; + } + return True; +} |
