Kotlin: Calculate Disjoint Pythagoras Numbers


I calculated disjoint Pythgoras numbers with Kotlin.

Environment

  • Kotlin 1.1.2-2

How to do

Think about disjoint pythagorus number trio, \( a, b, c \ ( a \leq b \lt c ) \) . As I wrote at Diophantus Formula for Pythagorean Numbers, \( c \) is odd and \( a \) and \( b \) are odd and even.

Then, \( c \) を奇数のループにします。 \( b \) を \( \frac{c}{\sqrt{2}} \lt [\frac{c}{\sqrt{2}}] + 1 \leq b \lt c \) の範囲でループさせます。 そして \( a = \sqrt{ b ^ 2 – c ^ 2 } \) が整数になる場合にそれをピタゴラス数とします。 ただし互いに素である必要があるため、共通因数を持つ場合は排除します。

In such way, calculate Pythagoras number trios under \( c \leq 1000 \) .

Code

共通因数が存在するか否かは Euclidean Algorithm in Kotlin のコードを流用します。

I created the class of Pythagoras number trio, at first. It’s also OK to use List or Array instead.

Here is the main function. After the calculation, print all Pythagoras numbers and the numbers of them.

実行結果

\( c \leq 1000 \) では 158件 みつかりました。