aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-01-21 17:57:17 +0000
committerGitHub <noreply@github.com>2024-01-21 17:57:17 +0000
commit0cc193c86d63fb566b88a2d447147faa95b2715e (patch)
treeae4bf5763997749e4a6543f602bc7ef7f248deb7
parent77f823797c2b56f60f7429970826c5f006072193 (diff)
parent6a30f27182af9a9ae0ce1a671bc49d2065a8164b (diff)
downloadperlweeklychallenge-club-0cc193c86d63fb566b88a2d447147faa95b2715e.tar.gz
perlweeklychallenge-club-0cc193c86d63fb566b88a2d447147faa95b2715e.tar.bz2
perlweeklychallenge-club-0cc193c86d63fb566b88a2d447147faa95b2715e.zip
Merge pull request #9434 from deadmarshal/TWC252
TWC252
-rw-r--r--challenge-252/deadmarshal/blog.txt1
-rw-r--r--challenge-252/deadmarshal/lua/ch-1.lua13
-rw-r--r--challenge-252/deadmarshal/lua/ch-2.lua15
-rw-r--r--challenge-252/deadmarshal/modula-3/ch1/src/Ch1.m321
-rw-r--r--challenge-252/deadmarshal/modula-3/ch1/src/m3makefile3
-rw-r--r--challenge-252/deadmarshal/modula-3/ch2/src/Ch2.m320
-rw-r--r--challenge-252/deadmarshal/modula-3/ch2/src/m3makefile3
-rw-r--r--challenge-252/deadmarshal/oberon/Ch1.Mod31
-rw-r--r--challenge-252/deadmarshal/oberon/Ch2.Mod32
-rw-r--r--challenge-252/deadmarshal/pascal/ch1.pas23
-rw-r--r--challenge-252/deadmarshal/pascal/ch2.pas18
-rw-r--r--challenge-252/deadmarshal/perl/ch-1.pl12
-rw-r--r--challenge-252/deadmarshal/perl/ch-2.pl16
-rw-r--r--challenge-252/deadmarshal/python/ch1.py10
-rw-r--r--challenge-252/deadmarshal/python/ch2.py12
-rw-r--r--challenge-252/deadmarshal/raku/ch-1.raku9
-rw-r--r--challenge-252/deadmarshal/raku/ch-2.raku15
17 files changed, 254 insertions, 0 deletions
diff --git a/challenge-252/deadmarshal/blog.txt b/challenge-252/deadmarshal/blog.txt
new file mode 100644
index 0000000000..d399b43f66
--- /dev/null
+++ b/challenge-252/deadmarshal/blog.txt
@@ -0,0 +1 @@
+https://deadmarshal.blogspot.com/2024/01/twc252.html
diff --git a/challenge-252/deadmarshal/lua/ch-1.lua b/challenge-252/deadmarshal/lua/ch-1.lua
new file mode 100644
index 0000000000..d37979b763
--- /dev/null
+++ b/challenge-252/deadmarshal/lua/ch-1.lua
@@ -0,0 +1,13 @@
+#!usr/bin/env lua
+
+local function special_numbers(t)
+ assert(type(t) == 'table','t must be a number!')
+ local sum = 0
+ for i=1,#t do
+ if #t % i == 0 then sum = sum + t[i] * t[i] end
+ end
+ return sum
+end
+
+print(special_numbers{1,2,3,4})
+print(special_numbers{2,7,1,19,18,3})
diff --git a/challenge-252/deadmarshal/lua/ch-2.lua b/challenge-252/deadmarshal/lua/ch-2.lua
new file mode 100644
index 0000000000..15c8c85bd6
--- /dev/null
+++ b/challenge-252/deadmarshal/lua/ch-2.lua
@@ -0,0 +1,15 @@
+#!usr/bin/env lua
+
+local function unique_sum_zero(n)
+ local ret = {}
+ for i=1,n//2 do
+ ret[#ret+1] = i
+ ret[#ret+1] = -i
+ end
+ if n % 2 == 1 then ret[#ret+1] = 0 end
+ return ret
+end
+
+print(table.unpack(unique_sum_zero(5)))
+print(table.unpack(unique_sum_zero(3)))
+print(table.unpack(unique_sum_zero(1)))
diff --git a/challenge-252/deadmarshal/modula-3/ch1/src/Ch1.m3 b/challenge-252/deadmarshal/modula-3/ch1/src/Ch1.m3
new file mode 100644
index 0000000000..d29da8e66b
--- /dev/null
+++ b/challenge-252/deadmarshal/modula-3/ch1/src/Ch1.m3
@@ -0,0 +1,21 @@
+MODULE Ch1 EXPORTS Main;
+
+IMPORT SIO;
+
+VAR
+ A1:ARRAY[0..3] OF INTEGER := ARRAY OF INTEGER{1,2,3,4};
+ A2:ARRAY[0..5] OF INTEGER := ARRAY OF INTEGER{2,7,1,19,18,3};
+
+PROCEDURE SpecialNumbers(VAR A:ARRAY OF INTEGER):INTEGER =
+ VAR Sum:INTEGER := 0;
+ BEGIN
+ FOR I := FIRST(A) TO LAST(A) DO
+ IF NUMBER(A) MOD (I+1) = 0 THEN INC(Sum,A[I] * A[I]) END
+ END;
+ RETURN Sum
+ END SpecialNumbers;
+
+BEGIN
+ SIO.PutInt(SpecialNumbers(A1)); SIO.Nl();
+ SIO.PutInt(SpecialNumbers(A2)); SIO.Nl()
+END Ch1.
diff --git a/challenge-252/deadmarshal/modula-3/ch1/src/m3makefile b/challenge-252/deadmarshal/modula-3/ch1/src/m3makefile
new file mode 100644
index 0000000000..19a44fd65f
--- /dev/null
+++ b/challenge-252/deadmarshal/modula-3/ch1/src/m3makefile
@@ -0,0 +1,3 @@
+import("libsio")
+implementation("Ch1")
+program("ch1")
diff --git a/challenge-252/deadmarshal/modula-3/ch2/src/Ch2.m3 b/challenge-252/deadmarshal/modula-3/ch2/src/Ch2.m3
new file mode 100644
index 0000000000..5983b8e9ae
--- /dev/null
+++ b/challenge-252/deadmarshal/modula-3/ch2/src/Ch2.m3
@@ -0,0 +1,20 @@
+MODULE Ch2 EXPORTS Main;
+
+IMPORT SIO;
+
+PROCEDURE UniqueSumZero(READONLY N:INTEGER) =
+ BEGIN
+ FOR I := 1 TO N DIV 2 DO
+ SIO.PutInt(I);
+ SIO.PutChar(' ');
+ SIO.PutInt(-I);
+ SIO.PutChar(' ')
+ END;
+ IF N MOD 2 = 1 THEN SIO.PutInt(0); SIO.Nl() END
+ END UniqueSumZero;
+
+BEGIN
+ UniqueSumZero(5);
+ UniqueSumZero(3);
+ UniqueSumZero(1);
+END Ch2.
diff --git a/challenge-252/deadmarshal/modula-3/ch2/src/m3makefile b/challenge-252/deadmarshal/modula-3/ch2/src/m3makefile
new file mode 100644
index 0000000000..6a91079091
--- /dev/null
+++ b/challenge-252/deadmarshal/modula-3/ch2/src/m3makefile
@@ -0,0 +1,3 @@
+import("libsio")
+implementation("Ch2")
+program("ch2")
diff --git a/challenge-252/deadmarshal/oberon/Ch1.Mod b/challenge-252/deadmarshal/oberon/Ch1.Mod
new file mode 100644
index 0000000000..1d31188d4a
--- /dev/null
+++ b/challenge-252/deadmarshal/oberon/Ch1.Mod
@@ -0,0 +1,31 @@
+MODULE Ch1;
+
+IMPORT Out;
+
+VAR
+ A1:ARRAY 4 OF LONGINT;
+ A2:ARRAY 6 OF LONGINT;
+
+PROCEDURE Init;
+BEGIN
+ A1[0] := 1; A1[1] := 2; A1[2] := 3; A1[3] := 4;
+ A2[0] := 2; A2[1] := 7; A2[2] := 1; A2[3] := 19;
+ A2[4] := 18; A2[5] := 3;
+END Init;
+
+PROCEDURE SpecialNumbers(VAR arr:ARRAY OF LONGINT):LONGINT;
+VAR i,sum:LONGINT;
+BEGIN
+ sum := 0;
+ FOR i := 0 TO LEN(arr)-1 DO
+ IF LEN(arr) MOD (i+1) = 0 THEN INC(sum,arr[i]*arr[i]) END
+ END;
+ RETURN sum
+END SpecialNumbers;
+
+BEGIN
+ Init;
+ Out.Int(SpecialNumbers(A1),0); Out.Ln;
+ Out.Int(SpecialNumbers(A2),0); Out.Ln
+END Ch1.
+
diff --git a/challenge-252/deadmarshal/oberon/Ch2.Mod b/challenge-252/deadmarshal/oberon/Ch2.Mod
new file mode 100644
index 0000000000..72c9bc7d77
--- /dev/null
+++ b/challenge-252/deadmarshal/oberon/Ch2.Mod
@@ -0,0 +1,32 @@
+MODULE Ch2;
+
+IMPORT Out;
+
+VAR
+ A1:ARRAY 4 OF LONGINT;
+ A2:ARRAY 6 OF LONGINT;
+
+PROCEDURE Init;
+BEGIN
+ A1[0] := 1; A1[1] := 2; A1[2] := 3; A1[3] := 4;
+ A2[0] := 2; A2[1] := 7; A2[2] := 1; A2[3] := 19;
+ A2[4] := 18; A2[5] := 3;
+END Init;
+
+PROCEDURE UniqueZeroSum(n:LONGINT);
+VAR i:LONGINT;
+BEGIN
+ FOR i := 1 TO n DIV 2 DO
+ Out.Int(i,0); Out.Char(' ');
+ Out.Int(-i,0); Out.Char(' ')
+ END;
+ IF n MOD 2 = 1 THEN Out.Int(0,0); Out.Char(' ') END;
+ Out.Ln
+END UniqueZeroSum;
+
+BEGIN
+ UniqueZeroSum(5);
+ UniqueZeroSum(3);
+ UniqueZeroSum(1);
+END Ch2.
+
diff --git a/challenge-252/deadmarshal/pascal/ch1.pas b/challenge-252/deadmarshal/pascal/ch1.pas
new file mode 100644
index 0000000000..a30264ab54
--- /dev/null
+++ b/challenge-252/deadmarshal/pascal/ch1.pas
@@ -0,0 +1,23 @@
+program Ch1;
+
+{$mode objfpc}
+uses
+ SysUtils,Types;
+
+var
+ A1,A2:TIntegerDynArray;
+
+function SpecialNumbers(VAR A:TIntegerDynArray):Integer;
+var I:Integer;
+begin
+ Result := 0;
+ for I := Low(A) TO High(A) do
+ if Length(A) mod (I+1) = 0 then Inc(Result,A[I]*A[I]);
+end;
+
+begin
+ A1 := [1,2,3,4];
+ A2 := [2,7,1,19,18,3];
+ Writeln(SpecialNumbers(A1));
+ Writeln(SpecialNumbers(A2));
+end.
diff --git a/challenge-252/deadmarshal/pascal/ch2.pas b/challenge-252/deadmarshal/pascal/ch2.pas
new file mode 100644
index 0000000000..05ac59ac2e
--- /dev/null
+++ b/challenge-252/deadmarshal/pascal/ch2.pas
@@ -0,0 +1,18 @@
+program Ch2;
+
+{$mode objfpc}
+uses
+ SysUtils;
+
+procedure UniqueSumZero(constref N:Integer);
+var I:Integer;
+begin
+ for I := 1 to N div 2 do Write(I,' ',-I,' ');
+ if N mod 2 = 1 then Writeln(0);
+end;
+
+begin
+ UniqueSumZero(5);
+ UniqueSumZero(3);
+ UniqueSumZero(1);
+end.
diff --git a/challenge-252/deadmarshal/perl/ch-1.pl b/challenge-252/deadmarshal/perl/ch-1.pl
new file mode 100644
index 0000000000..5d0438af47
--- /dev/null
+++ b/challenge-252/deadmarshal/perl/ch-1.pl
@@ -0,0 +1,12 @@
+#!usr/bin/env perl
+use strict;
+use warnings;
+use List::Util qw(sum0);
+
+sub special_numbers{
+ my ($arr) = @_;
+ sum0 map{($arr->[$_] ** 2) if @$arr % ($_+1) == 0} 0..$#$arr;
+}
+
+printf "%d\n",special_numbers([1,2,3,4]);
+printf "%d\n",special_numbers([2,7,1,19,18,3]);
diff --git a/challenge-252/deadmarshal/perl/ch-2.pl b/challenge-252/deadmarshal/perl/ch-2.pl
new file mode 100644
index 0000000000..0e178de81e
--- /dev/null
+++ b/challenge-252/deadmarshal/perl/ch-2.pl
@@ -0,0 +1,16 @@
+#!usr/bin/env perl
+use strict;
+use warnings;
+use Data::Show;
+
+sub unique_sum_zero{
+ my ($n,@ret) = @_;
+ foreach(1..$n/2){
+ push(@ret,$_,-$_);
+ }
+ $n % 2 ? (@ret,0) : @ret;
+}
+
+print show unique_sum_zero(5);
+print show unique_sum_zero(3);
+print show unique_sum_zero(1);
diff --git a/challenge-252/deadmarshal/python/ch1.py b/challenge-252/deadmarshal/python/ch1.py
new file mode 100644
index 0000000000..803e722eb5
--- /dev/null
+++ b/challenge-252/deadmarshal/python/ch1.py
@@ -0,0 +1,10 @@
+#!/usr/bin/env python
+
+def special_numbers(arr):
+ ret = []
+ for i in range(len(arr)):
+ if len(arr) % (i+1) == 0: ret.append(arr[i]**2)
+ return sum(ret)
+
+print(special_numbers([1,2,3,4]))
+print(special_numbers([2,7,1,19,18,3]))
diff --git a/challenge-252/deadmarshal/python/ch2.py b/challenge-252/deadmarshal/python/ch2.py
new file mode 100644
index 0000000000..17868430ab
--- /dev/null
+++ b/challenge-252/deadmarshal/python/ch2.py
@@ -0,0 +1,12 @@
+#!/usr/bin/env python
+
+def unique_sum_zero(n):
+ ret = []
+ for i in range(1,n//2+1):
+ ret += [i,-i]
+ if n % 2 != 0: ret.append(0)
+ return ret
+
+print(unique_sum_zero(5))
+print(unique_sum_zero(3))
+print(unique_sum_zero(1))
diff --git a/challenge-252/deadmarshal/raku/ch-1.raku b/challenge-252/deadmarshal/raku/ch-1.raku
new file mode 100644
index 0000000000..a4d9953ee8
--- /dev/null
+++ b/challenge-252/deadmarshal/raku/ch-1.raku
@@ -0,0 +1,9 @@
+#!usr/bin/env raku
+
+sub special-numbers(@arr)
+{
+ [+] (0..@arr).map: {@arr[$_] ** 2 if @arr %% ($_+1)};
+}
+
+say special-numbers([1,2,3,4]);
+say special-numbers([2,7,1,19,18,3]);
diff --git a/challenge-252/deadmarshal/raku/ch-2.raku b/challenge-252/deadmarshal/raku/ch-2.raku
new file mode 100644
index 0000000000..5f21f7eb42
--- /dev/null
+++ b/challenge-252/deadmarshal/raku/ch-2.raku
@@ -0,0 +1,15 @@
+#!usr/bin/env raku
+
+sub unique-sum-zero($n)
+{
+ my @ret;
+ for 1..$n/2 -> $i {
+ @ret.push: $i,-$i
+ }
+ @ret.push(0) unless $n %% 2;
+ @ret
+}
+
+say unique-sum-zero(5);
+say unique-sum-zero(3);
+say unique-sum-zero(1);