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.