diff options
| author | E7-87-83 <fungcheokyin@gmail.com> | 2022-01-15 08:34:27 +0800 |
|---|---|---|
| committer | E7-87-83 <fungcheokyin@gmail.com> | 2022-01-15 08:34:27 +0800 |
| commit | f28927324fbb28d31346e9d61276dec40f0e76df (patch) | |
| tree | 0b108e881121cb18b4b502de8edbe4ee1ae54eeb | |
| parent | d0d4307c6aca27acc4b2bad93136148ee2160f00 (diff) | |
| download | perlweeklychallenge-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.awk | 46 | ||||
| -rw-r--r-- | challenge-147/cheok-yin-fung/bash/ch-1.sh | 56 | ||||
| -rw-r--r-- | challenge-147/cheok-yin-fung/blog.txt | 11 |
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 |
