# [Purdue-pm] Perl Weekly Challenge

Mark Senn mark at purdue.edu
Sun Sep 1 17:19:42 PDT 2019

```This week's Perl Weekly Challenge problem was at
https://perlweeklychallenge.org/blog/perl-weekly-challenge-023/
It includes recaps of some previous problems by several people.

My blog for this week's forward difference task is at
https://engineering.purdue.edu/~mark/pwc-023-1.pdf
The Perl 6 code:
#
# Perl Weekly Challenge - 023
#
# See
#     engineering.purdue.edu/~mark/blog/pwc-023-1.pdf
#

# Run using Perl v6.d.
use v6.d;

# Get command line arguments.
my \$order = shift @*ARGS;
my @x = @*ARGS;

my \$i = 1;
while  @x.elems > 1 && \$i <= \$order  {
# <<->> is a hyperoperator
# if @x = (10,20,30,40), then
@x = @x[1..*] <<->> @x[0..^*-1];
# gives (20-10,30-20,40-30) = (10,20,30)

say "order {\$i++}: {@x}";
}

My blog for this week's factoring numbers task is at
https://engineering.purdue.edu/~mark/pwc-023-2.pdf
The Perl 6 code:
#
# Perl Weekly Challenge - 023
#
# See
#     engineering.purdue.edu/~mark/blog/pwc-023-2.pdf
#

# Run using Perl v6.d.
use v6.d;

my \$n = 228;    # number to factor

# for 2, 3, 5, 7, ..., if the number is prime enter the loop
for  (2, 3, *+2 ... *).grep({.is-prime}) -> \$p  {

while  \$n %% \$p  {    # \$n evenly divisible by the current prime?
say \$p;           #     print the prime
\$n div= \$p;       #     divide \$n by the prime
}

# Is \$p > \$n.sqrt?
# But, I suspect \$p ** 2 > \$n (= \$p * \$p > \$n) , is faster to compute.
if (\$p ** 2 > \$n)  {
\$n.say;
last;
}

}

-mark
```