import math // a function to check if three numbers are a valid triple def is_triple(a, b, c) if not (a < b) and (b < c) return false end return (a^2 + b^2) = c^2 end // a function to check if the numbers are coprime def is_coprime(a, b, c) global math return (math.gcd(a, b)=1) && (math.gcd(a, c)=1) && (math.gcd(b, c)=1) end // the maximum perimeter to check perimeter = 100 perimeter2 = int(perimeter / 2) - 1 perimeter3 = int(perimeter / 3) - 1 // loop though and look for pythagorean triples ts = 0 ps = 0 for a in range(1, perimeter3) for b in range(a + 1, perimeter2) for c in range(b + 1, perimeter2) if (a + b + c) <= perimeter if is_triple(a,b,c) ts += 1 print a + ", " + b + ", " + c if is_coprime(a,b,c) ps += 1 print " primitive" end println end end end end end print "Up to a perimeter of " + perimeter + ", there are " + ts println " triples, of which " + ps + " are primitive."