From fa94e15a7dc0c2f0e338b9c5e7fe3fb5697808a2 Mon Sep 17 00:00:00 2001 From: "Jaldhar H. Vyas" Date: Sat, 14 Oct 2023 23:50:51 -0400 Subject: Challenge 238 by Jaldhar H. Vyas. --- challenge-238/jaldhar-h-vyas/blog.txt | 1 + challenge-238/jaldhar-h-vyas/perl/ch-1.sh | 3 +++ challenge-238/jaldhar-h-vyas/perl/ch-2.pl | 25 +++++++++++++++++++++++++ challenge-238/jaldhar-h-vyas/raku/ch-1.sh | 3 +++ challenge-238/jaldhar-h-vyas/raku/ch-2.raku | 21 +++++++++++++++++++++ 5 files changed, 53 insertions(+) create mode 100644 challenge-238/jaldhar-h-vyas/blog.txt create mode 100755 challenge-238/jaldhar-h-vyas/perl/ch-1.sh create mode 100755 challenge-238/jaldhar-h-vyas/perl/ch-2.pl create mode 100755 challenge-238/jaldhar-h-vyas/raku/ch-1.sh create mode 100755 challenge-238/jaldhar-h-vyas/raku/ch-2.raku diff --git a/challenge-238/jaldhar-h-vyas/blog.txt b/challenge-238/jaldhar-h-vyas/blog.txt new file mode 100644 index 0000000000..efaeed226c --- /dev/null +++ b/challenge-238/jaldhar-h-vyas/blog.txt @@ -0,0 +1 @@ +https://www.braincells.com/perl/2023/10/perl_weekly_challenge_week_238.html diff --git a/challenge-238/jaldhar-h-vyas/perl/ch-1.sh b/challenge-238/jaldhar-h-vyas/perl/ch-1.sh new file mode 100755 index 0000000000..610b9f4a30 --- /dev/null +++ b/challenge-238/jaldhar-h-vyas/perl/ch-1.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +perl -E 'say q{(},(join q{, },map{$t+=$_}@ARGV),q{)}' "$@" \ No newline at end of file diff --git a/challenge-238/jaldhar-h-vyas/perl/ch-2.pl b/challenge-238/jaldhar-h-vyas/perl/ch-2.pl new file mode 100755 index 0000000000..61b42eac77 --- /dev/null +++ b/challenge-238/jaldhar-h-vyas/perl/ch-2.pl @@ -0,0 +1,25 @@ +#!/usr/bin/perl +use 5.030; +use warnings; + +my @ints = @ARGV; +my %steps; + +for my $int (@ints) { + my $n = $int; + my $s = 0; + while (length $n > 1) { + my $t = 1; + my @digits = split //, $n; + for my $digit (@digits) { + $t *= $digit; + } + $n = $t; + $s++; + } + $steps{$int} = $s; +} + +my @sorted = sort { $steps{$a} <=> $steps{$b} || $a > $b } keys %steps; + +say q{(}, (join q{, }, @sorted), q{)}; diff --git a/challenge-238/jaldhar-h-vyas/raku/ch-1.sh b/challenge-238/jaldhar-h-vyas/raku/ch-1.sh new file mode 100755 index 0000000000..517600f558 --- /dev/null +++ b/challenge-238/jaldhar-h-vyas/raku/ch-1.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +raku -e 'my $t=0;say q{(},@*ARGS.map({$t+=$_}).join(q{, }),q{)}' "$@" \ No newline at end of file diff --git a/challenge-238/jaldhar-h-vyas/raku/ch-2.raku b/challenge-238/jaldhar-h-vyas/raku/ch-2.raku new file mode 100755 index 0000000000..acc031e17f --- /dev/null +++ b/challenge-238/jaldhar-h-vyas/raku/ch-2.raku @@ -0,0 +1,21 @@ +#!/usr/bin/raku + +sub MAIN( + *@ints +) { + my %steps; + + for @ints -> $int { + my $n = $int; + my $s = 0; + while $n.chars > 1 { + $n = [*] ($n.comb); + $s++; + } + %steps{$int} = $s; + } + + my @sorted = %steps.keys.sort({ %steps{$^a} <=> %steps{$^b} || $^a > $^b }); + + say q{(}, @sorted.join(q{, }), q{)}; +} \ No newline at end of file -- cgit