How to resolve the algorithm Pythagorean triples step by step in the Arturo programming language
How to resolve the algorithm Pythagorean triples step by step in the Arturo programming language
Table of Contents
Problem Statement
A Pythagorean triple is defined as three positive integers
( a , b , c )
{\displaystyle (a,b,c)}
where
a < b < c
{\displaystyle a<b<c}
, and
a
2
b
2
=
c
2
.
{\displaystyle a^{2}+b^{2}=c^{2}.}
They are called primitive triples if
a , b , c
{\displaystyle a,b,c}
are co-prime, that is, if their pairwise greatest common divisors
g c d
( a , b )
g c d
( a , c )
g c d
( b , c )
1
{\displaystyle {\rm {gcd}}(a,b)={\rm {gcd}}(a,c)={\rm {gcd}}(b,c)=1}
. Because of their relationship through the Pythagorean theorem, a, b, and c are co-prime if a and b are co-prime (
g c d
( a , b )
1
{\displaystyle {\rm {gcd}}(a,b)=1}
). Each triple forms the length of the sides of a right triangle, whose perimeter is
P
a + b + c
{\displaystyle P=a+b+c}
.
The task is to determine how many Pythagorean triples there are with a perimeter no larger than 100 and the number of these that are primitive.
Deal with large values. Can your program handle a maximum perimeter of 1,000,000? What about 10,000,000? 100,000,000? Note: the extra credit is not for you to demonstrate how fast your language is compared to others; you need a proper algorithm to solve them in a timely manner.
Let's start with the solution:
Step by Step solution about How to resolve the algorithm Pythagorean triples step by step in the Arturo programming language
Source code in the arturo programming language
triples: new []
loop 1..50 'x [
loop 1..50 'y [
loop (max @[x y])..100 'z [
if 100 > sum @[x y z] [
if (z^2) = add x^2 y^2 ->
'triples ++ @[sort @[x y z]]
]
]
]
]
unique 'triples
print ["Found" size triples "pythagorean triples with a perimeter no larger than 100:"]
print triples
primitive: select triples => [1 = gcd]
print ""
print [size primitive "of them are primitive:"]
print primitive
You may also check:How to resolve the algorithm Globally replace text in several files step by step in the Icon and Unicon programming language
You may also check:How to resolve the algorithm Constrained genericity step by step in the Sidef programming language
You may also check:How to resolve the algorithm Linear congruential generator step by step in the Nim programming language
You may also check:How to resolve the algorithm Loops/While step by step in the Lang5 programming language
You may also check:How to resolve the algorithm Sorting algorithms/Quicksort step by step in the jq programming language