diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-01-21 17:57:17 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-21 17:57:17 +0000 |
| commit | 0cc193c86d63fb566b88a2d447147faa95b2715e (patch) | |
| tree | ae4bf5763997749e4a6543f602bc7ef7f248deb7 | |
| parent | 77f823797c2b56f60f7429970826c5f006072193 (diff) | |
| parent | 6a30f27182af9a9ae0ce1a671bc49d2065a8164b (diff) | |
| download | perlweeklychallenge-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.txt | 1 | ||||
| -rw-r--r-- | challenge-252/deadmarshal/lua/ch-1.lua | 13 | ||||
| -rw-r--r-- | challenge-252/deadmarshal/lua/ch-2.lua | 15 | ||||
| -rw-r--r-- | challenge-252/deadmarshal/modula-3/ch1/src/Ch1.m3 | 21 | ||||
| -rw-r--r-- | challenge-252/deadmarshal/modula-3/ch1/src/m3makefile | 3 | ||||
| -rw-r--r-- | challenge-252/deadmarshal/modula-3/ch2/src/Ch2.m3 | 20 | ||||
| -rw-r--r-- | challenge-252/deadmarshal/modula-3/ch2/src/m3makefile | 3 | ||||
| -rw-r--r-- | challenge-252/deadmarshal/oberon/Ch1.Mod | 31 | ||||
| -rw-r--r-- | challenge-252/deadmarshal/oberon/Ch2.Mod | 32 | ||||
| -rw-r--r-- | challenge-252/deadmarshal/pascal/ch1.pas | 23 | ||||
| -rw-r--r-- | challenge-252/deadmarshal/pascal/ch2.pas | 18 | ||||
| -rw-r--r-- | challenge-252/deadmarshal/perl/ch-1.pl | 12 | ||||
| -rw-r--r-- | challenge-252/deadmarshal/perl/ch-2.pl | 16 | ||||
| -rw-r--r-- | challenge-252/deadmarshal/python/ch1.py | 10 | ||||
| -rw-r--r-- | challenge-252/deadmarshal/python/ch2.py | 12 | ||||
| -rw-r--r-- | challenge-252/deadmarshal/raku/ch-1.raku | 9 | ||||
| -rw-r--r-- | challenge-252/deadmarshal/raku/ch-2.raku | 15 |
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); |
