aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorE7-87-83 <fungcheokyin@gmail.com>2022-01-15 08:34:27 +0800
committerE7-87-83 <fungcheokyin@gmail.com>2022-01-15 08:34:27 +0800
commitf28927324fbb28d31346e9d61276dec40f0e76df (patch)
tree0b108e881121cb18b4b502de8edbe4ee1ae54eeb
parentd0d4307c6aca27acc4b2bad93136148ee2160f00 (diff)
downloadperlweeklychallenge-club-f28927324fbb28d31346e9d61276dec40f0e76df.tar.gz
perlweeklychallenge-club-f28927324fbb28d31346e9d61276dec40f0e76df.tar.bz2
perlweeklychallenge-club-f28927324fbb28d31346e9d61276dec40f0e76df.zip
awk and bash
-rw-r--r--challenge-147/cheok-yin-fung/awk/ch-1.awk46
-rw-r--r--challenge-147/cheok-yin-fung/bash/ch-1.sh56
-rw-r--r--challenge-147/cheok-yin-fung/blog.txt11
3 files changed, 108 insertions, 5 deletions
diff --git a/challenge-147/cheok-yin-fung/awk/ch-1.awk b/challenge-147/cheok-yin-fung/awk/ch-1.awk
new file mode 100644
index 0000000000..94c1ac860e
--- /dev/null
+++ b/challenge-147/cheok-yin-fung/awk/ch-1.awk
@@ -0,0 +1,46 @@
+# The Weekly Challenge 147
+# Task 1 Truncatable Prime
+# Instructions: Print the first 20 left truncatable primes.
+# Usage: awk -f 'ch-1.awk'
+
+BEGIN {
+ target_size = 20
+ prime[0] = 2
+ prime[1] = 3
+ prime[2] = 5
+ prime[3] = 7
+
+ i = 4
+ for (n=10; n < 1000; n++) {
+ loop = 1
+ for (k=2; k < n/3 && loop == 1; k++) {
+ if (n % k == 0)
+ loop = 0
+ }
+ if (loop == 1) {
+ prime[i] = n
+ i++
+ }
+ }
+
+ i=0
+ for (n in prime) {
+ loop = 0
+ for (k in prime) {
+ if (prime[n] % 10 == prime[k] && prime[k] < 10) {
+ loop++
+ }
+ if (prime[n] % 100 == prime[k] && prime[k] < 100) {
+ loop++
+ }
+ }
+ if (loop == 2) {
+ print prime[n]
+ i++
+ }
+ if (i > target_size) {
+ exit
+ }
+ }
+
+}
diff --git a/challenge-147/cheok-yin-fung/bash/ch-1.sh b/challenge-147/cheok-yin-fung/bash/ch-1.sh
new file mode 100644
index 0000000000..3c1247facc
--- /dev/null
+++ b/challenge-147/cheok-yin-fung/bash/ch-1.sh
@@ -0,0 +1,56 @@
+# The Weekly Challenge 147
+# Task 1 Truncatable Prime
+# Instructions: Print the first 20 left truncatable primes.
+# Usage: $ chmod +x ch-1.sh
+# $ ./ch-1.sh
+
+target_size=20
+prime=(2 3 5 7)
+
+i=4
+for ((n=10; n<1000; n=$n+1));
+do
+ loop=1
+ for ((k=2;k<=n/3; k=$k+1));
+ do
+ if [[ $n%$k -eq 0 ]];
+ then
+ loop=0
+ break
+ fi
+ done
+ if [[ $loop -eq 1 ]];
+ then
+ prime[$((i))]=$n
+ i=$i+1
+ fi
+done
+
+i=0
+n=0
+while [ $((prime[$n])) -le 996 ] # 997 or above will return error
+do
+ loop=0
+ k=0
+ for ((k=0; $((prime[$k]))<=996; k=$k+1));
+ do
+ if [[ $((prime[$n]))%10 -eq $((prime[$k])) ]];
+ then
+ loop=$loop+1
+ fi
+ if [[ $((prime[$n]))%100 -eq $((prime[$k])) ]];
+ then
+ loop=$loop+1
+ fi
+ done
+ if [[ $loop -eq 2 ]];
+ then
+ echo $((prime[$n]))
+ i=$i+1
+ fi
+ n=$n+1
+ if [[ $i -gt $target_size ]]
+ then
+ exit
+ fi
+done
diff --git a/challenge-147/cheok-yin-fung/blog.txt b/challenge-147/cheok-yin-fung/blog.txt
index 815ab13ca8..1e9dccfdc0 100644
--- a/challenge-147/cheok-yin-fung/blog.txt
+++ b/challenge-147/cheok-yin-fung/blog.txt
@@ -1,24 +1,25 @@
This is the beginning of the semester of my PG dip in IT; and I have finished all exams and assignments from the previous semester. Somehow today I want to try to play with programming languages. While Mohammad has said, having fun is important in learning, now I try to do the Task 1 in different programming languages which I am fluent at least at the "sightseeing purpose", within 4 days.
-Target list:
-awk(?) bash(?)
-
+Target list was:
+awk bash
C++
Java Node.js Julia
LISP PHP Perl Smalltalk
Befunge-93 (if I have that mentality)
-Script done (last update: Fri Jan 14 13:19 2022 HKT):
+Scripts done (last update: Saturday, January 15, 2022 AM08:27:00 HKT):
1. Julia
2. Perl
3. Smalltalk
4. Java
5. C++
6. Node.js
+7. Awk (slow)
+8. Bash (slow)
+9.
Left:
LISP
-Befunge-93
>>>>
The above content will be edited and put on https://e7-87-83.github.io/coding/challenge_147.html