私は数値を取得しようとしていますreversedPrime
逆プライムは素数とすることができますし、その逆は素数です。例えば17
は素数です逆71
も素数ですそのreversedPrime
、私は完全な例書いている:素数とその逆数を素数として取得
13 17 31 37 71 73 79 97 107 113 149 157 167 179 199 311 337 347 359 389
B:私はプログラムを実行するが、私は奇妙なアウトプットを持って
public static void printReversedPrime() {
int NUMBER_OF_REQUiRED = 100;
int NUMBERS_PER_LINE = 10;
int count = 0, number = 1;
while (count < NUMBER_OF_REQUiRED) {
if (isReversedPrime(number)) {
count++;
if (count % NUMBERS_PER_LINE == 0)
System.out.println(number);
else
System.out.print(number + " ");
}
number++;
}
}
private static boolean isReversedPrime(int number) {
return isPrime(number) && nonPalindromicIsPrime(number);
}
private static boolean nonPalindromicIsPrime(int number) {
int digit;
int reserved = 0;
for (int i = 0; i <= number ; i++) {
digit = number % 10;
reserved = (reserved * 10) + digit;
number = number/10;
// System.out.print(reserved);
}
return isPrime(reserved);
}
private static boolean isPrime(int number) {
for (int divisor = 2; divisor <= number/2 ; divisor++) {
if (number % divisor == 0){ // if true number is not prime
return false;
}
}
return true;
}
を、私のようないくつかのものを持っている必要がありますUTは私が取得しています:私は間違って
11 22 33 55 77 11111 33113 77117 99133299211331 77337 11433477433599511677611771 33773 99779 33899877997 110330770990331113 772113131 773137 993994115775336776337173 997179 118119191
何をしたのですか?
誰かが私を指摘することはありますか?
は方法でprint文 'nonPalindromicIsPrime'意図しますか?あなたの出力はそれによって影響を受けると思います。 – Parag
for <= numberのfor条件を維持しながら、nonPalindromicIsPrimeの数を減らしています。代わりにwhileループを使うべきです – Assafs
それを指摘してくれてありがとう、私はそのprintステートメントを削除するのを忘れました。 @Assafsは実際にループを使用していましたが、正しい結果を得るためにそれを変更しました – user1058652