diff options
| author | Archargelod <archargelod@gmail.com> | 2024-02-01 19:47:08 +0800 |
|---|---|---|
| committer | Archargelod <archargelod@gmail.com> | 2024-02-01 19:47:08 +0800 |
| commit | d9d99d0c3e7f15f7dd9d403a720dbf7e0972f67b (patch) | |
| tree | 5ea7a24cbef785b42722d4e29f12e40a5e0ac8c5 /challenge-254/archargelod | |
| parent | e717eee8ff6764a61aabbc1c6b449ee36c195a32 (diff) | |
| download | perlweeklychallenge-club-d9d99d0c3e7f15f7dd9d403a720dbf7e0972f67b.tar.gz perlweeklychallenge-club-d9d99d0c3e7f15f7dd9d403a720dbf7e0972f67b.tar.bz2 perlweeklychallenge-club-d9d99d0c3e7f15f7dd9d403a720dbf7e0972f67b.zip | |
solution for week 254
Diffstat (limited to 'challenge-254/archargelod')
| -rw-r--r-- | challenge-254/archargelod/README | 1 | ||||
| -rwxr-xr-x | challenge-254/archargelod/nim/ch_1.nim | 17 | ||||
| -rwxr-xr-x | challenge-254/archargelod/nim/ch_2.nim | 31 |
3 files changed, 49 insertions, 0 deletions
diff --git a/challenge-254/archargelod/README b/challenge-254/archargelod/README new file mode 100644 index 0000000000..6cd57e1074 --- /dev/null +++ b/challenge-254/archargelod/README @@ -0,0 +1 @@ +Solution by archargelod diff --git a/challenge-254/archargelod/nim/ch_1.nim b/challenge-254/archargelod/nim/ch_1.nim new file mode 100755 index 0000000000..c908c6d54a --- /dev/null +++ b/challenge-254/archargelod/nim/ch_1.nim @@ -0,0 +1,17 @@ +#!/usr/bin/env -S nim r -d:release --verbosity:0 --hints:off +import std/math + +proc isPower(n, power: Natural): bool = + let root = round pow(n.float, 1 / power) + almostEqual(n.float, pow(root, power.float)) + +when isMainModule: + import std/unittest + + suite "required tests": + test "27 is power of 3": + check 27.isPower(3) + test "0 is power of 3": + check 0.isPower(3) + test "6 is not a power of 3": + check not 6.isPower(3) diff --git a/challenge-254/archargelod/nim/ch_2.nim b/challenge-254/archargelod/nim/ch_2.nim new file mode 100755 index 0000000000..74dba95da4 --- /dev/null +++ b/challenge-254/archargelod/nim/ch_2.nim @@ -0,0 +1,31 @@ +#!/usr/bin/env -S nim r -d:release --verbosity:0 --hints:off +import std/[strutils, sugar] + +const Vowels = {'a','e','i','o','u'} + +proc reversedVowels*(s: string): string = + let vowels = collect: + for i in countDown(s.high, 0): + let c = s[i].toLowerAscii + if c in Vowels: c + + result = s + + var ind = 0 + for c in result.mItems: + if c.toLowerAscii in Vowels: + c = if c.isUpperAscii: vowels[ind].toUpperAscii else: vowels[ind] + inc ind + +when isMainModule: + import std/unittest + + suite "required tests": + test "Raku": + check reversedVowels("Raku") == "Ruka" + test "Perl": + check reversedVowels("Perl") == "Perl" + test "Julia": + check reversedVowels("Julia") == "Jaliu" + test "Uiua": + check reversedVowels("Uiua") == "Auiu" |
