diff options
| author | Adam Russell <ac.russell@live.com> | 2021-10-10 17:58:40 -0400 |
|---|---|---|
| committer | Adam Russell <ac.russell@live.com> | 2021-10-10 17:58:40 -0400 |
| commit | 0fd8715cbcb88e3d3100b72cb1f2ce8ecce9446c (patch) | |
| tree | 119ea9a6f2622d2813a0bfcca857fd7a60aeb876 | |
| parent | c22bb4307d884ce2e4681f25f3cbb759f9f69263 (diff) | |
| download | perlweeklychallenge-club-0fd8715cbcb88e3d3100b72cb1f2ce8ecce9446c.tar.gz perlweeklychallenge-club-0fd8715cbcb88e3d3100b72cb1f2ce8ecce9446c.tar.bz2 perlweeklychallenge-club-0fd8715cbcb88e3d3100b72cb1f2ce8ecce9446c.zip | |
challenge 133
| -rw-r--r-- | challenge-133/adam-russell/nuweb/ch-1.w | 63 | ||||
| -rw-r--r-- | challenge-133/adam-russell/perl/ch-1.pl | 32 |
2 files changed, 95 insertions, 0 deletions
diff --git a/challenge-133/adam-russell/nuweb/ch-1.w b/challenge-133/adam-russell/nuweb/ch-1.w new file mode 100644 index 0000000000..116ba25bd7 --- /dev/null +++ b/challenge-133/adam-russell/nuweb/ch-1.w @@ -0,0 +1,63 @@ +\documentclass{article} + +\usepackage{listings} +\lstset{extendedchars=true , keepspaces=true , language=perl} + +\begin{document} + +Challenge 133 + +\section{Integer Square Root} + +You are given a positive integer \$N. +Write a script to calculate the integer square root of the given number. +Please avoid using built-in function. + +@o perl/ch-1.pl +@{ + @<preamble...@> + @<nth root@> + @<square root@> + @<main@> +@} + +@d preamble: use statements, introductory comments, etc. +@{ + use strict; + use warnings; +@} + +@d nth root +@{ + sub nth_root{ + my($n, $k) = @@_; + my $x_i = int(rand(10) + 1); + my $r; + for my $i (0 .. 100){ + $x_i = (1 / $n) * (($n - 1) * $x_i + ($k / $x_i ** ($n - 1))); + } + return $x_i; + } +@} + +@d square root +@{ + sub integer_square_root{ + my($k) = @@_; + my $x = int(nth_root(2, $k)); + return $x; + } +@} + +@d main +@{ + MAIN:{ + print integer_square_root(10) . "\n"; + print integer_square_root(27) . "\n"; + print integer_square_root(85) . "\n"; + print integer_square_root(101) . "\n"; + } + +@} + +\end{document} diff --git a/challenge-133/adam-russell/perl/ch-1.pl b/challenge-133/adam-russell/perl/ch-1.pl new file mode 100644 index 0000000000..22d99b6820 --- /dev/null +++ b/challenge-133/adam-russell/perl/ch-1.pl @@ -0,0 +1,32 @@ + + + use strict; + use warnings; + + + sub nth_root{ + my($n, $k) = @_; + my $x_i = int(rand(10) + 1); + my $r; + for my $i (0 .. 100){ + $x_i = (1 / $n) * (($n - 1) * $x_i + ($k / $x_i ** ($n - 1))); + } + return $x_i; + } + + + sub integer_square_root{ + my($k) = @_; + my $x = int(nth_root(2, $k)); + return $x; + } + + + MAIN:{ + print integer_square_root(10) . "\n"; + print integer_square_root(27) . "\n"; + print integer_square_root(85) . "\n"; + print integer_square_root(101) . "\n"; + } + + |
