aboutsummaryrefslogtreecommitdiff
path: root/challenge-173
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-173')
-rw-r--r--challenge-173/mohammad-anwar/perl/ch-2.pl48
-rw-r--r--challenge-173/mohammad-anwar/python/ch-2.py44
-rw-r--r--challenge-173/mohammad-anwar/raku/ch-2.raku45
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 ];
+}