私のプログラムの目的は、ユーザーに整数を入力させるプログラムを書くことです。プログラムは整数を読み込み、それが素数であるかどうかを決定します。そしてそれがプライムでない場合、それはユーザーにすべての約数を伝えます。Javaの素数のテスト
これは私が持っているところまでですが、私が169や289のような数字でテストしたとき、プログラムは素数であると言っていました。私はこの問題は、この行の上に横たわっていることを理解する:
int[] div = new int[] { 2,3,4,5,6,7,8,9};
が、私はこのような何かをしようとした:
for (int s = nr; s != 0 ; s--) {
if (nr%s == 0) {
int[] div = new int[]{s}; }
は、しかし、それは動作しませんでした。ちょっとした助けや正しい方向が大いに役立ちます。ありがとうございました!
public static void main(String[] args){
System.out.println("enter a number:");
Scanner scanner = new Scanner (System.in);
int nr = scanner.nextInt();
int[] div = new int[] { 2,3,4,5,6,7,8,9};
boolean prime = nr >= 2;
int i = nr;
for(int j = 0; j< div.length && prime && i> div[j]; j++)
if(i % div[j] == 0)
prime = false;
if(prime){
System.out.println(i + " is a prime");
}else{
System.out.print(i + " is divisible");
for(int k = 2; k < i; k++)
if(i % k == 0){
System.out.print(k);
System.out.print(",");}
}
} }
あなたの 'div'配列の数字で除算しても、数字が素数であることは証明されません。 '13'はどうですか? – beerbajay
このウィキペディアのリンクを試してください:Primality test。 http://en.wikipedia.org/wiki/Primality_test –
@Uzdawiあなたは答えを受け入れることができます、ありがとう。 – Adam