in reply to Triangle Numbers Revisited
EDIT: Just needed a slight change to the first line after BING to prevent tget calls for 0:
Incidently, I ran a looped version of this for all numbers 3-100000, and only the following could not be made with sums of three triangles:use strict; use warnings; my ($i, $j, $inum, $jnum, $left); $| = 1; print "Enter the number to check : "; my $inp = <STDIN>; BING: for ($i = tget($inp-2); $i; $i--) { $inum = tmake($i); $left = tget($inp - $inum - 1) + 1; for ($j = 1; $j < $left; $j++) { $jnum = tmake($j); last BING if (tis($inp - $inum - $jnum)); } } print " Your triangles are : $inum $jnum " . ($inp - $inum - $jnum) . "\n"; sub tget { return int(sqrt(1 + $_[0] * 2) - .5); } sub tmake { return (.5 * $_[0] * ($_[0] + 1)); } sub tis { my $n = shift; return ($n == tmake(tget($n))); }
4, 6, 11, 20, 29
As far as I can tell, all integers after 29 can be made with at least one sum of three triangles. The number of sums increases as you go along.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Triangle Numbers Revisited
by Limbic~Region (Chancellor) on Oct 14, 2004 at 12:53 UTC |