私たちはコンピューター サイエンスのクラスでラボを行っており、これは宿題として割り当てられました。1 から入力された数までのすべてのピタゴラス数を見つけるプログラムを作成することになっています。私はその部分を行うことができると信じていますが、別の要件について混乱しています. 入力した整数が偶数か奇数かを確認し、a、b、c の GCF が 1 であることを確認する必要があります。以下に、これまでに作成したコードと一緒に私の手順を示します。
手順: ネストされたループを使用して、1 から指定された数までのすべてのピタゴラス数を生成します。3 つの数がトリプルになるには、いくつかの要件を満たす必要があります。まず、トリプルの 3 つの数値が a2 + b2 == c2 を満たす必要があります。次に、a が奇数の場合、b は偶数でなければならず、a が偶数の場合、b は奇数でなければならず、c は a / b のいずれかの組み合わせに対して奇数でなければなりません。最後に、a、b、および c の最大公約数は 1 以下でなければなりません。
また、トリプレットを見つけるための for ループの最後で、a が偶数か奇数かを調べようとしましたが、a が奇数かどうか、b が偶数かどうか、および GCF 部分を確認する方法がわかりません。間違いを犯した場合は訂正してください。また、コーディングの割り当てを完了する方法についてアドバイスをください。前もって感謝します!
私のコード:
package chapter4;
import java.util.*;
/**
*
* @author Anthony
*/
public class Triples {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Choose a limit for the pythsgorean triplets");
int limit = scan.nextInt();
int a, b, c;
for (a = 0; a < limit; a++) {
for (b = 0; b < limit; b++) {
for ( c = 0; c < limit; c++){
if( (Math.pow(a,2) + Math.pow(b, 2) == Math.pow(c, 2))) {
System.out.printf(" %d, %d, %d", a, b, c);
}
}
}
for (a = 0; a < limit; a++) {
if (a % 2)
printf("%d is odd\n", a);
else
printf("%d is even\n", a);
return 0;
}
}