From 8a56f9b666981b6dd455a50d8e548978d131368c Mon Sep 17 00:00:00 2001 From: arnesom Date: Sat, 20 Jan 2024 16:51:07 +0100 Subject: Arne Sommer --- challenge-252/arne-sommer/blog.txt | 1 + challenge-252/arne-sommer/raku/ch-1.raku | 20 ++++++++++++++++++++ challenge-252/arne-sommer/raku/ch-2.raku | 21 +++++++++++++++++++++ challenge-252/arne-sommer/raku/special-numbers | 20 ++++++++++++++++++++ challenge-252/arne-sommer/raku/usz | 21 +++++++++++++++++++++ 5 files changed, 83 insertions(+) create mode 100644 challenge-252/arne-sommer/blog.txt create mode 100755 challenge-252/arne-sommer/raku/ch-1.raku create mode 100755 challenge-252/arne-sommer/raku/ch-2.raku create mode 100755 challenge-252/arne-sommer/raku/special-numbers create mode 100755 challenge-252/arne-sommer/raku/usz (limited to 'challenge-252') diff --git a/challenge-252/arne-sommer/blog.txt b/challenge-252/arne-sommer/blog.txt new file mode 100644 index 0000000000..b7231a7cad --- /dev/null +++ b/challenge-252/arne-sommer/blog.txt @@ -0,0 +1 @@ +https://raku-musings.com/uniquely-special.html diff --git a/challenge-252/arne-sommer/raku/ch-1.raku b/challenge-252/arne-sommer/raku/ch-1.raku new file mode 100755 index 0000000000..f8fb92200a --- /dev/null +++ b/challenge-252/arne-sommer/raku/ch-1.raku @@ -0,0 +1,20 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@ints where @ints.elems > 0 && all(@ints) ~~ Int, :v(:$verbose)); + +my $sum = 0; +my $n = @ints.elems; + +for 1 .. $n -> $i +{ + if $n %% $i + { + my $val = @ints[$i -1]; + my $squared = $val ** 2; + + $sum += $squared; + say ": Index $i is special -> value:$val -> squared:$squared -> sum:$sum" if $verbose; + } +} + +say $sum; diff --git a/challenge-252/arne-sommer/raku/ch-2.raku b/challenge-252/arne-sommer/raku/ch-2.raku new file mode 100755 index 0000000000..efea5ba119 --- /dev/null +++ b/challenge-252/arne-sommer/raku/ch-2.raku @@ -0,0 +1,21 @@ +#! /usr/bin/env raku + +unit sub MAIN (UInt $n is copy, :v(:$verbose)); + +my @array; + +if $n % 2 +{ + @array = (0,); + say ": Odd number, added middle zero" if $verbose; +} + +for 1 .. $n div 2 -> $i +{ + @array.push: $i; + @array.unshift: -$i; + + say ": Added { -$i } at front and $i at end" if $verbose; +} + +say "({ @array.join(", ") })"; diff --git a/challenge-252/arne-sommer/raku/special-numbers b/challenge-252/arne-sommer/raku/special-numbers new file mode 100755 index 0000000000..f8fb92200a --- /dev/null +++ b/challenge-252/arne-sommer/raku/special-numbers @@ -0,0 +1,20 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@ints where @ints.elems > 0 && all(@ints) ~~ Int, :v(:$verbose)); + +my $sum = 0; +my $n = @ints.elems; + +for 1 .. $n -> $i +{ + if $n %% $i + { + my $val = @ints[$i -1]; + my $squared = $val ** 2; + + $sum += $squared; + say ": Index $i is special -> value:$val -> squared:$squared -> sum:$sum" if $verbose; + } +} + +say $sum; diff --git a/challenge-252/arne-sommer/raku/usz b/challenge-252/arne-sommer/raku/usz new file mode 100755 index 0000000000..efea5ba119 --- /dev/null +++ b/challenge-252/arne-sommer/raku/usz @@ -0,0 +1,21 @@ +#! /usr/bin/env raku + +unit sub MAIN (UInt $n is copy, :v(:$verbose)); + +my @array; + +if $n % 2 +{ + @array = (0,); + say ": Odd number, added middle zero" if $verbose; +} + +for 1 .. $n div 2 -> $i +{ + @array.push: $i; + @array.unshift: -$i; + + say ": Added { -$i } at front and $i at end" if $verbose; +} + +say "({ @array.join(", ") })"; -- cgit