diff options
Diffstat (limited to 'challenge-173')
| -rw-r--r-- | challenge-173/mohammad-anwar/perl/ch-2.pl | 48 | ||||
| -rw-r--r-- | challenge-173/mohammad-anwar/python/ch-2.py | 44 | ||||
| -rw-r--r-- | challenge-173/mohammad-anwar/raku/ch-2.raku | 45 |
3 files changed, 137 insertions, 0 deletions
diff --git a/challenge-173/mohammad-anwar/perl/ch-2.pl b/challenge-173/mohammad-anwar/perl/ch-2.pl new file mode 100644 index 0000000000..d9a4a40cea --- /dev/null +++ b/challenge-173/mohammad-anwar/perl/ch-2.pl @@ -0,0 +1,48 @@ +#!/usr/bin/perl + +=head1 + +Week 173: + + https://theweeklychallenge.org/blog/perl-weekly-challenge-173 + +Task #2: Sylvester’s sequence + + Write a script to generate first 10 members of Sylvester's sequence. + +=cut + +use v5.36; +use Test2::V0; + +is sylvester_sequence(10), + [ + 2 + ,3 + ,7 + ,43 + ,1807 + ,3263443 + ,10650056950807 + ,113423713055421844361000443 + ,12864938683278671740537145998360961546653259485195807 + ,165506647324519964198468195444439180017513152706377497841851388766535868639572406808911988131737645185443 + ], + 'Example'; + +done_testing; + +# +# +# METHOD + +sub sylvester_sequence($n) { + die "ERROR: Missing number.\n" unless defined $n; + die "ERROR: Invalid number $n.\n" if $n < 3; + + my @ss = (2); + foreach (1 .. --$n) { + push @ss, (1 + $ss[-1] * ($ss[-1] - 1)); + } + return \@ss; +} diff --git a/challenge-173/mohammad-anwar/python/ch-2.py b/challenge-173/mohammad-anwar/python/ch-2.py new file mode 100644 index 0000000000..0bedda5388 --- /dev/null +++ b/challenge-173/mohammad-anwar/python/ch-2.py @@ -0,0 +1,44 @@ +#!/usr/bin/python3 + +''' + +Week 173: + + https://theweeklychallenge.org/blog/perl-weekly-challenge-173 + +Task #2: Sylvester’s sequence + + Write a script to generate first 10 members of Sylvester's sequence. + +''' + +import unittest + +def SylvesterSequence(n): + ss = [2] + for i in range (1, --n): + ss.append(1 + ss[-1] * (ss[-1] - 1)) + return ss + +# +# +# Unit test class + +class TestSylvesterSequence(unittest.TestCase): + + def test_example(self): + self.assertEqual(SylvesterSequence(10), + [ + 2 + ,3 + ,7 + ,43 + ,1807 + ,3263443 + ,10650056950807 + ,113423713055421844361000443 + ,12864938683278671740537145998360961546653259485195807 + ,165506647324519964198468195444439180017513152706377497841851388766535868639572406808911988131737645185443 + ]) + +unittest.main() diff --git a/challenge-173/mohammad-anwar/raku/ch-2.raku b/challenge-173/mohammad-anwar/raku/ch-2.raku new file mode 100644 index 0000000000..2bfc8e0340 --- /dev/null +++ b/challenge-173/mohammad-anwar/raku/ch-2.raku @@ -0,0 +1,45 @@ +#!/usr/bin/env raku + +=begin pod + +Week 173: + + https://theweeklychallenge.org/blog/perl-weekly-challenge-173 + +Task #2: Sylvester’s sequence + + Write a script to generate first 10 members of Sylvester's sequence. + +=end pod + +use Test; + +is sylvester-sequence(10), + [ + 2 + ,3 + ,7 + ,43 + ,1807 + ,3263443 + ,10650056950807 + ,113423713055421844361000443 + ,12864938683278671740537145998360961546653259485195807 + ,165506647324519964198468195444439180017513152706377497841851388766535868639572406808911988131737645185443 + ], + 'Example'; + +done-testing; + +# +# +# METHOD + +sub sylvester-sequence(Int $n where $n >= 3) { + + my @ss = (2); + for 1 .. $n-1 { + @ss.push: 1 + (@ss[@ss.end] * (@ss[@ss.end] - 1)); + } + return [ @ss ]; +} |
