## Consider the triangles with integer sides $a$, $b$ and $c$ with $a \le b \le c$.

An integer sided triangle $(a,b,c)$ is called primitive if $\gcd(a, b, c)$$\gcd(a,b,c)=\gcd(a,\gcd(b,c))$$=1$.

How many primitive integer sided triangles exist with a perimeter not exceeding $10\,000\,000$?

### To tackle this problem, we are dealing with what’s known as primitive Pythagorean triples in number theory.

A Pythagorean triple consists of three positive integers a, b, and c, such that a^2 + b^2 = c^2. If the gcd(a,b,c) = 1, we call this a primitive Pythagorean triple.

First, we make use of the fact that every primitive Pythagorean triple (a, b, c) can be represented as:

a = n^2 – m^2

b = 2mn and

c = n^2 + m^2 for some m, n ∈ Z, such that m > n > 0, gcd(m,n) = 1 and m and n have different parity.

We know that the perimeter p = a + b + c = 2n(n + m) <= 10^7.
Let's fix m and maximize n: n <= floor(10^7/2m - m/2). As m increases, the maximum of n decreases, so to optimize the search we can start iterating m from a large value down to 1 and find the n that meets the conditions for each m.
We sum up the number of suitable n for all m, and that will give us the number of primitive Pythagorean triples, hence the number of triangles with the conditions.
Here is a Python script that does exactly that and calculates the result:
```python
#!/usr/bin/env python3
from math import gcd, isqrt
L = 10**7
s = 0
m = isqrt(L // 2)
while m > 0:

n_min = m % 2 + 1

n_max = min((m – 1) // 2, L // (2 * m) – m // 2)

for n in range(n_max, n_min – 1, -1):

if gcd(m, n) == 1:

s += 1

m -= 1

print(s)

“`

Running this script will provide you with the number of primitive integer sided triangles exist with a perimeter not exceeding 10,000,000.

##### More Answers:

Sum of SquaresDivisibility Multipliers

Balanced Sculptures