aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.freedom.nl>2022-01-17 21:11:03 +0100
committerAbigail <abigail@abigail.freedom.nl>2022-01-17 21:11:03 +0100
commit8e3e74158d5d68493ec4bc6d7f60aa37d0449214 (patch)
tree68ea533d59e5b6c5e61200ad3435bd395135a212
parentee9f8c8288170dc442f8199fc1d2f7e45ac4377c (diff)
downloadperlweeklychallenge-club-8e3e74158d5d68493ec4bc6d7f60aa37d0449214.tar.gz
perlweeklychallenge-club-8e3e74158d5d68493ec4bc6d7f60aa37d0449214.tar.bz2
perlweeklychallenge-club-8e3e74158d5d68493ec4bc6d7f60aa37d0449214.zip
Week 148, part 1: 15 languages
-rw-r--r--challenge-148/abigail/awk/ch-1.awk19
-rw-r--r--challenge-148/abigail/bash/ch-1.sh16
-rw-r--r--challenge-148/abigail/bc/ch-1.bc24
-rw-r--r--challenge-148/abigail/c/ch-1.c24
-rw-r--r--challenge-148/abigail/go/ch-1.go26
-rw-r--r--challenge-148/abigail/java/ch-1.java24
-rw-r--r--challenge-148/abigail/lua/ch-1.lua21
-rw-r--r--challenge-148/abigail/node/ch-1.js17
-rw-r--r--challenge-148/abigail/pascal/ch-1.p26
-rw-r--r--challenge-148/abigail/perl/ch-1.pl61
-rw-r--r--challenge-148/abigail/python/ch-1.py19
-rw-r--r--challenge-148/abigail/r/ch-1.r11
-rw-r--r--challenge-148/abigail/ruby/ch-1.rb11
-rw-r--r--challenge-148/abigail/scheme/ch-1.scm22
-rw-r--r--challenge-148/abigail/tcl/ch-1.tcl17
15 files changed, 338 insertions, 0 deletions
diff --git a/challenge-148/abigail/awk/ch-1.awk b/challenge-148/abigail/awk/ch-1.awk
new file mode 100644
index 0000000000..547cd72064
--- /dev/null
+++ b/challenge-148/abigail/awk/ch-1.awk
@@ -0,0 +1,19 @@
+#!/usr/bin/awk
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-148
+#
+
+#
+# Run as: awk -f ch-1.awk
+#
+
+BEGIN {
+ for (i = 0; i <= 100; i ++) {
+ if (! match (i, /^0$|[1789]|^2.|[35]$/)) {
+ printf ("%d ", i)
+ }
+ }
+ printf ("\n")
+}
+
diff --git a/challenge-148/abigail/bash/ch-1.sh b/challenge-148/abigail/bash/ch-1.sh
new file mode 100644
index 0000000000..8c2a94a75b
--- /dev/null
+++ b/challenge-148/abigail/bash/ch-1.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-148
+#
+
+#
+# Run as: bash ch-1.sh
+#
+
+for ((i = 0; i <= 100; i ++))
+do if [[ !($i =~ ^0$|[1789]|^2.|[35]$) ]]
+ then printf "%d " $i
+ fi
+done
+echo
diff --git a/challenge-148/abigail/bc/ch-1.bc b/challenge-148/abigail/bc/ch-1.bc
new file mode 100644
index 0000000000..ae79ba0e77
--- /dev/null
+++ b/challenge-148/abigail/bc/ch-1.bc
@@ -0,0 +1,24 @@
+#!/usr/bin/bc
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-148
+#
+
+#
+# Run as: bc ch-1.bc
+#
+
+for (i = 0; i <= 100; i ++) {
+ t = i / 10
+ u = i % 10
+ if (!(i == 0 || t == 1 || u == 1 || t == 7 || u == 7 \
+ || t == 8 || u == 8 || t == 9 || u == 9 \
+ || t == 2 || u == 3 || u == 5 || i == 100)) {
+ print i, " "
+ }
+}
+
+"
+"
+
+halt
diff --git a/challenge-148/abigail/c/ch-1.c b/challenge-148/abigail/c/ch-1.c
new file mode 100644
index 0000000000..231a5efade
--- /dev/null
+++ b/challenge-148/abigail/c/ch-1.c
@@ -0,0 +1,24 @@
+# include <stdlib.h>
+# include <stdio.h>
+# include <string.h>
+
+/*
+ * See https://theweeklychallenge.org/blog/perl-weekly-challenge-148
+ */
+
+/*
+ * Run as: cc -o ch-1.o ch-1.c; ./ch-1.o
+ */
+
+int main (void) {
+ for (int i = 0; i <= 100; i ++) {
+ int u = i % 10;
+ int t = i / 10;
+ if (!(i == 0 || t == 1 || u == 1 || t == 7 || u == 7
+ || t == 8 || u == 8 || t == 9 || u == 9
+ || t == 2 || u == 3 || u == 5 || i == 100)) {
+ printf ("%d ", i);
+ }
+ }
+ printf ("\n");
+}
diff --git a/challenge-148/abigail/go/ch-1.go b/challenge-148/abigail/go/ch-1.go
new file mode 100644
index 0000000000..2fdce59eb8
--- /dev/null
+++ b/challenge-148/abigail/go/ch-1.go
@@ -0,0 +1,26 @@
+package main
+
+//
+// See https://theweeklychallenge.org/blog/perl-weekly-challenge-148
+//
+
+//
+// Run as: go run ch-1.go
+//
+
+import (
+ "fmt"
+)
+
+func main () {
+ for i := 0; i <= 100; i ++ {
+ u := i % 10
+ t := i / 10
+ if !(i == 0 || t == 1 || u == 1 || t == 7 || u == 7 ||
+ t == 8 || u == 8 || t == 9 || u == 9 ||
+ t == 2 || u == 3 || u == 5 || i == 100) {
+ fmt . Printf ("%d ", i)
+ }
+ }
+ fmt . Printf ("\n")
+}
diff --git a/challenge-148/abigail/java/ch-1.java b/challenge-148/abigail/java/ch-1.java
new file mode 100644
index 0000000000..4d9fb734e2
--- /dev/null
+++ b/challenge-148/abigail/java/ch-1.java
@@ -0,0 +1,24 @@
+//
+// See https://theweeklychallenge.org/blog/perl-weekly-challenge-148
+//
+
+//
+// Run as: ln ch-1.java ch1.java; javac ch1.java; java ch1
+//
+
+import java.util.*;
+
+public class ch1 {
+ public static void main (String [] args) {
+ for (int i = 0; i <= 100; i ++) {
+ int u = i % 10;
+ int t = i / 10;
+ if (!(i == 0 || t == 1 || u == 1 || t == 7 || u == 7
+ || t == 8 || u == 8 || t == 9 || u == 9
+ || t == 2 || u == 3 || u == 5 || i == 100)) {
+ System . out . printf ("%d ", i);
+ }
+ }
+ System . out . printf ("\n");
+ }
+}
diff --git a/challenge-148/abigail/lua/ch-1.lua b/challenge-148/abigail/lua/ch-1.lua
new file mode 100644
index 0000000000..246f1db062
--- /dev/null
+++ b/challenge-148/abigail/lua/ch-1.lua
@@ -0,0 +1,21 @@
+#!/opt/local/bin/lua
+
+--
+-- See https://theweeklychallenge.org/blog/perl-weekly-challenge-148
+--
+
+--
+-- Run as: lua ch-1.lua
+--
+
+for i = 0, 100 do
+ local t = math . floor (i / 10)
+ local u = i % 10
+ if not (i == 0 or t == 1 or u == 1 or t == 7 or u == 7
+ or t == 8 or u == 8 or t == 9 or u == 9
+ or t == 2 or u == 3 or u == 5 or i == 100) then
+ io . write (i, " ")
+ end
+end
+
+io . write ("\n")
diff --git a/challenge-148/abigail/node/ch-1.js b/challenge-148/abigail/node/ch-1.js
new file mode 100644
index 0000000000..1c3ddca65f
--- /dev/null
+++ b/challenge-148/abigail/node/ch-1.js
@@ -0,0 +1,17 @@
+#!/usr/local/bin/node
+
+//
+// See https://theweeklychallenge.org/blog/perl-weekly-challenge-148
+//
+
+//
+// Run as: node ch-1.js
+//
+
+
+console . log (
+ Array . from (Array (101) . keys ())
+ . filter (x => !(x . toString () . match (/^0$|[1789]|^2.|[35]$/)))
+ . join (" ")
+)
+
diff --git a/challenge-148/abigail/pascal/ch-1.p b/challenge-148/abigail/pascal/ch-1.p
new file mode 100644
index 0000000000..74d050e07c
--- /dev/null
+++ b/challenge-148/abigail/pascal/ch-1.p
@@ -0,0 +1,26 @@
+Program XXX;
+
+(* *)
+(* See https://theweeklychallenge.org/blog/perl-weekly-challenge-148 *)
+(* *)
+
+(* *)
+(* Run as: fpc -och-1.out ch-1.p; ./ch-1.out *)
+(* *)
+
+var
+ i, t, u: integer;
+
+begin
+ for i := 1 to 100 do begin
+ t := i div 10;
+ u := i mod 10;
+ if not ((i = 0) or (t = 1) or (u = 1) or (t = 7) or (u = 7)
+ or (t = 8) or (u = 8) or (t = 9) or (u = 9)
+ or (t = 2) or (u = 3) or (u = 5) or (i = 100))
+ then begin
+ write (i, ' ');
+ end;
+ end;
+ writeln ('');
+end.
diff --git a/challenge-148/abigail/perl/ch-1.pl b/challenge-148/abigail/perl/ch-1.pl
new file mode 100644
index 0000000000..7feaa42382
--- /dev/null
+++ b/challenge-148/abigail/perl/ch-1.pl
@@ -0,0 +1,61 @@
+#!/opt/perl/bin/perl
+
+use 5.032;
+
+use strict;
+use warnings;
+no warnings 'syntax';
+
+use experimental 'signatures';
+use experimental 'lexical_subs';
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-148
+#
+
+#
+# Run as: perl ch-1.pl
+#
+
+#
+# This is sequence A006933 in the OEIS
+#
+
+#
+# Number English Contains e
+# 0 ZERO Y
+# ?1 ONE Y
+# ?2 TWO N
+# ?3 THREE Y
+# ?4 FOUR N
+# ?5 FIVE Y
+# ?6 SIX N
+# ?7 SEVEN Y
+# ?8 EIGHT Y
+# ?9 NINE Y
+# 10 TEN Y
+# 11 ELEVEN Y
+# 12 TWELVE Y
+# 1? *TEEN Y
+# 2? TWENTY* Y
+# 3? THIRTY* N
+# 4? FORTY* N
+# 5? FIFTY* N
+# 6? SIXTY* N
+# 7? SEVENTY* Y
+# 8? EIGHTY* Y
+# 9? NINETY* Y
+# 1? HUNDRED Y
+#
+
+#
+# So, in short, numbers containing an E when written in English
+# are: - 0
+# - contains a 1, 7, 8 or 9
+# - ends with a 3, or 5
+# - starts with a 2, and is followed by another digit
+#
+# Any other numbers are eban.
+#
+
+say join " " => grep {!/^0$ | [1789] | ^2. | [35]$/x} 0 .. 100;
diff --git a/challenge-148/abigail/python/ch-1.py b/challenge-148/abigail/python/ch-1.py
new file mode 100644
index 0000000000..f0d3591271
--- /dev/null
+++ b/challenge-148/abigail/python/ch-1.py
@@ -0,0 +1,19 @@
+#!/usr/local/bin/python3
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-148
+#
+
+#
+# Run as: python ch-1.py
+#
+
+import sys, re
+
+for i in range (101):
+ if not (i == 0 or re . search (r'[1789]', str (i))
+ or re . search (r'^2.', str (i))
+ or re . search (r'[35]$', str (i))):
+ sys . stdout . write (str (i) + " ")
+
+sys . stdout . write ("\n")
diff --git a/challenge-148/abigail/r/ch-1.r b/challenge-148/abigail/r/ch-1.r
new file mode 100644
index 0000000000..45684794ab
--- /dev/null
+++ b/challenge-148/abigail/r/ch-1.r
@@ -0,0 +1,11 @@
+#!/usr/local/bin/Rscript
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-148
+#
+
+#
+# Run as: Rscript ch-1.r
+#
+
+cat (grep ("^0$|[1789]|2.|[35]$", c (0:100), invert = TRUE, value = TRUE), "\n")
diff --git a/challenge-148/abigail/ruby/ch-1.rb b/challenge-148/abigail/ruby/ch-1.rb
new file mode 100644
index 0000000000..745041a7b8
--- /dev/null
+++ b/challenge-148/abigail/ruby/ch-1.rb
@@ -0,0 +1,11 @@
+#!/usr/bin/ruby
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-148
+#
+
+#
+# Run as: ruby ch-1.rb
+#
+
+puts ((0 .. 100) . reject {|n| n . to_s =~ /^0$|[1789]|^2.|[35]$/} . join (" "))
diff --git a/challenge-148/abigail/scheme/ch-1.scm b/challenge-148/abigail/scheme/ch-1.scm
new file mode 100644
index 0000000000..db6fb840a6
--- /dev/null
+++ b/challenge-148/abigail/scheme/ch-1.scm
@@ -0,0 +1,22 @@
+#!/usr/local/bin/guile
+!#
+
+;;;
+;;; See https://theweeklychallenge.org/blog/perl-weekly-challenge-148
+;;;
+
+;;;
+;;; Run as: guile --no-auto-compile ch-1.scm
+;;;
+
+(use-modules (ice-9 regex))
+(use-modules (ice-9 format))
+
+(define pat "^0$|[1789]|^2.|[35]$")
+
+(do ((i 0 (1+ i)))
+ ((> i 100))
+ (if (not (string-match pat (number->string i)))
+ (format #t "~d " i)))
+
+(newline)
diff --git a/challenge-148/abigail/tcl/ch-1.tcl b/challenge-148/abigail/tcl/ch-1.tcl
new file mode 100644
index 0000000000..a4d6a4bd13
--- /dev/null
+++ b/challenge-148/abigail/tcl/ch-1.tcl
@@ -0,0 +1,17 @@
+#!/usr/local/opt/tcl-tk/bin/tclsh
+
+#
+# See https://theweeklychallenge.org/blog/perl-weekly-challenge-148
+#
+
+#
+# Run as: tclsh ch-1.tcl
+#
+
+for {set i 0} {$i <= 100} {incr i} {
+ if {![regexp {^0$|[1789]|^2.|[35]$} $i]} {
+ puts -nonewline "${i} "
+ }
+}
+
+puts ""