diff options
| author | Kai Burgdorf <k@iburgdorf.de> | 2021-08-10 22:11:58 +0200 |
|---|---|---|
| committer | Kai Burgdorf <k@iburgdorf.de> | 2021-08-15 17:47:06 +0200 |
| commit | 51521874346ebd683e5027c9495d31b2385f7032 (patch) | |
| tree | 3f842c1ebf85fae5667f847eda09aaa6777e2df3 | |
| parent | dae33f10b00beaf02883597401ede84ddcc3b77f (diff) | |
| download | perlweeklychallenge-club-51521874346ebd683e5027c9495d31b2385f7032.tar.gz perlweeklychallenge-club-51521874346ebd683e5027c9495d31b2385f7032.tar.bz2 perlweeklychallenge-club-51521874346ebd683e5027c9495d31b2385f7032.zip | |
solution perl ch-1
| -rwxr-xr-x | challenge-125/kai-burgdorf/perl/ch-1.pl | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/challenge-125/kai-burgdorf/perl/ch-1.pl b/challenge-125/kai-burgdorf/perl/ch-1.pl new file mode 100755 index 0000000000..bafc62c9a9 --- /dev/null +++ b/challenge-125/kai-burgdorf/perl/ch-1.pl @@ -0,0 +1,50 @@ +#!/usr/bin/env perl + +use utf8; +use strict; +use warnings; + +my $N = 5; + +if($N == 0) { + print "(0, 0, 0)\n"; + exit(0); +} + +print "Input: \$N = $N\nOutput:\n"; +print "\t-1\n" if(!(n_as_hypotenuse($N) and n_as_cathete($N))); + +sub n_as_cathete { + my ($a) = @_; + + my $c = 0; + + while ($c**2 - ($c-1)**2 <= $a**2) { + for(1..($c-1)) { + if($c*$c - $_*$_ == $a*$a) { + print "\t($a, $_, $c)\n"; + return 1; + } + } + $c++; + } + + return 0; +} + + +sub n_as_hypotenuse { + my ($c) = @_; + + for(1..($c-1)) { + my $a = $_; + for($a..($c-1)) { + if($a**2 + $_**2 == $c**2) { + print "\t($a, $_, $c)\n"; + return 1; + } + } + } + + return 0; +} |
