[m、n]間隔の数値に対するGoldbachの推測の問題に対する私の解です。コードは機能しますが、aとmの値を読み取る際に問題があります。 2つ以上の入力値(4以上など)を導入しないと何も起こりません。私がそうするならば、最初の値はmに割り当てられ、最後の値はnに割り当てられます。なぜこうなった?どうすれば修正できますか?すべてのScanner Class Java - 入力値が多すぎます
public class GoldbachConjecture {
public static void Goldbach(int x) {
int ok=0;
for (int i = 3; i < x/2 && ok==0; i++) {
if (isPrime(i) && isPrime(x - i)) {
System.out.println("The number is " + x + " Prime Numbers are " + i + " " + (x - i));
ok=1;
}
}
}
public static boolean isPrime(int x) {
for (int i = 2; i < x/2; i++) {
if (x % i == 0) {
return false;
}
}
return true;
}
public static void main(String[] args) {
System.out.print("Give the interval");
Scanner in1= new Scanner(System.in);
int m = in1.nextInt();
Scanner in2=new Scanner(System.in);
int n=in2.nextInt();
for(int nr = m; nr <= n; nr++)
{
if(nr>2 && nr%2==0)
Goldbach(nr);
}
}
}
あなたは、入力として2つの以上の数字を必要としません。 2つの独立した 'Scanner'インスタンスを使用する悪い選択のため、同じ行にそれらを入力することはできません。 – Tom