Triangles with integer sides a,b,c (a =< b =< c) all have perimeter p.
As example, if p = 13, there are 5 triangles:
a,b,c:
1,6,6
2,5,6
3,4,6
3,5,5
4,4,5
I believe this "program coding" gets them all the quickest way:
GET p
IF p is even THEN sa = 2 ELSE sa = 1 (sa means start a)
LOOP a FROM sa TO INT(p/3)
sb = INT[(p - 2a) / 2] + 1 : IF sb < a THEN sb = a (sb means start b)
LOOP b FROM sb TO INT[(p - a) / 2]
c = p - a - b
n = n + 1 (count them!)
PRINT a,b,c (if one wishes!)
ENDLOOPS
PRINT n
Can someone confirm that this gets 'em all? Thank you.


LinkBack URL
About LinkBacks