Version: 1
Type: Full Script
Category: Math Functions
License: GNU General Public License
Description: Pythagorean triples are the lengths of the sides of a right angled triangle which are all integers.
Enter how many triples you want to find, and the script will display them for you.
Working (and formatted) version of script:
http://xodus.xionenet.com/triples.php
🙂
<form action='<?=$_SERVER['PHP_SELF']?>' method='post'> <table> <tr> <td colspan='3' class='header'>Pythagorean Triple Generator</td> </tr> <tr> <td colspan='2'>Generate first <input type='text' name='num' size='3' maxlength='3' value='<?php if (isset($_POST['num'])) { echo $_POST['num']; } else { echo "100"; } ?>' onfocus="value=''" /> triples</td> <td><input type='submit' name='submit' value='go' /></td> </tr> <tr> <td width='75'><b>length a</b></td> <td width='75'><b>length b</b></td> <td width='75'><b>hypoteneuse</b></td> </tr> <?php ///////////////////// // a^2 + b^2 = c^2 // ///////////////////// if (isset($_POST['submit'])) { $max = $_POST['num']; // How many triples to find? } else { $max = 0; // No value = no triples >:D } $i = 1; // Triple Counter $c = 1; // Hypoteneuse length $f = 1; // Variable for alternating while ($i <= $max) { // Generate only number of triples required $csq = $c*$c; $b = 1; while ($b < $c) { // Generating length of a different side $bsq = $b*$b; $asq = $csq - $bsq; $a = sqrt($asq); // Display every other triple, otherwise duplicates will occur... if ($f) { $f = FALSE; } else { $f = 1; } // If result is an integer, it's a triple! if(ereg("^[0-9]+$", $a) && $f) { // Is the result an integer? If yes, we have a triple... echo "<tr><td>$a</td><td>$b</td><td>$c</td></tr>n"; $i++; // Increment triple counter } $b++; // Increment length B } $c++; // Raise the hypoteneuse to look for more triples... } ?> </table> </form>