diff options
| author | Abigail <abigail@abigail.freedom.nl> | 2022-01-15 16:30:51 +0100 |
|---|---|---|
| committer | Abigail <abigail@abigail.freedom.nl> | 2022-01-15 16:50:29 +0100 |
| commit | a3f595d255809dfb78e43d0179cbefd67a5a1c62 (patch) | |
| tree | 6dd24e0ff18c452bd767060b6a721b3c4a0d2f95 /challenge-147 | |
| parent | 46a9f55050cb852410da9c80c7e248d8df0328a8 (diff) | |
| download | perlweeklychallenge-club-a3f595d255809dfb78e43d0179cbefd67a5a1c62.tar.gz perlweeklychallenge-club-a3f595d255809dfb78e43d0179cbefd67a5a1c62.tar.bz2 perlweeklychallenge-club-a3f595d255809dfb78e43d0179cbefd67a5a1c62.zip | |
Week 147: Go solutions
Diffstat (limited to 'challenge-147')
| -rw-r--r-- | challenge-147/abigail/go/ch-1.go | 56 | ||||
| -rw-r--r-- | challenge-147/abigail/go/ch-2.go | 31 |
2 files changed, 87 insertions, 0 deletions
diff --git a/challenge-147/abigail/go/ch-1.go b/challenge-147/abigail/go/ch-1.go new file mode 100644 index 0000000000..a71d770cb3 --- /dev/null +++ b/challenge-147/abigail/go/ch-1.go @@ -0,0 +1,56 @@ +package main + +// +// See https://theweeklychallenge.org/blog/perl-weekly-challenge-147 +// + +// +// Run as: go run ch-1.go +// + +import ( + "fmt" +) + +func is_prime (num int) bool { + if num == 2 { + return true + } + if num % 2 == 0 { + return false + } + for i := 3; i * i <= num; i += 2 { + if num % i == 0 { + return false + } + } + return true +} + +func main () { + todo := [] int {2, 3, 5, 7} + for _, n := range todo { + fmt . Printf ("%d ", n) + } + count := 20 - len (todo) + pow := 10 + for count > 0 && len (todo) > 0 { + new_todo := [] int {} + for d := 1; (d <= 9) && (count > 0); d ++ { + for _, p := range (todo) { + candidate := d * pow + p + if is_prime (candidate) { + fmt . Printf ("%d ", candidate) + new_todo = append (new_todo, candidate) + count -- + } + if count <= 0 { + break + } + } + } + todo = new_todo + pow *= 10 + } + fmt . Print ("\n") +} diff --git a/challenge-147/abigail/go/ch-2.go b/challenge-147/abigail/go/ch-2.go new file mode 100644 index 0000000000..13fe915ad4 --- /dev/null +++ b/challenge-147/abigail/go/ch-2.go @@ -0,0 +1,31 @@ +package main + +// +// See https://theweeklychallenge.org/blog/perl-weekly-challenge-147 +// + +// +// Run as: go run ch-2.go +// + +import ( + "fmt" +) + +func main () { + p := 0 + n := 0 + pentagon := map [int] bool { } + for { + p = p + n + n + n + 1 + n ++ + pentagon [p] = true + for seen := range pentagon { + if seen + seen < p && pentagon [p - seen] && + pentagon [p - seen - seen] { + fmt . Printf ("%d %d\n", seen, p - seen) + return + } + } + } +} |
