pythagorean-triples
Install
$ npm install pythagorean-triples
var triples = require('pythagorean-triples');
Usage
triples.euclid(m, n)
Generates a Pythagorean triple, using Euclid's formula a = m^2 - n^2, b = 2mn, c = m^2 + n^2
.
The triple is sorted numerically a < b < c
.
console.log(triples.euclid(2, 1));
console.log(triples.euclid(3, 2));
triples.upToM(m)
Generates all the triples for integers m
and n
where 1 <= n < m
.
console.log(triples.upToM(4));
[
[ 3, 4, 5 ],
[ 6, 8, 10 ],
[ 5, 12, 13 ],
[ 8, 15, 17 ],
[ 12, 16, 20 ],
[ 7, 24, 25 ]
]
triples.upToSum(sum)
Generates all the triples where a + b + c <= sum
.
console.log(triples.upToSum(35))
[
[ 3, 4, 5 ],
[ 6, 8, 10 ],
[ 5, 12, 13 ],
]
triples.isTriple(triple)
Checks if the given triple is a valid triple:
- array with three values
- all values positive integers
- can make a right angle:
a^2 + b^2 = c^2
console.log(triples.isTriple([3, 4, 5]);
console.log(triples.isTriple([5, 12, 13]);
console.log(triples.isTriple('5, 12, 13');
console.log(triples.isTriple([5, 13]);
console.log(triples.isTriple([5, 12, 13, 15]);
console.log(triples.isTriple([1.5, 2, 2.5]);
console.log(triples.isTriple([-5, 12, 13]);
console.log(triples.isTriple([0, 7, 7]);
console.log(triples.isTriple([5, 12, 15]);
triples.isPrimitive(triple)
Checks if the given triple is primitive. A triple is primitive if all values are coprime, which means their greatest common divisor is 1.
console.log(triples.isPrimitive([3, 4, 5]);
console.log(triples.isPrimitive([6, 8, 10]);
Tests
To run the test suite, first install the dependencies, then run npm test
:
$ npm install
$ npm test