私は、私がやろうと思った興味深い質問を見つけました。ほとんどすぐに、修正できないように見える問題を見つけました。
コードを実行すると、エラーは発生しませんが、何も返さずに実行されるだけです。私のループは問題ないようで、素数を見つけるためのアルゴリズムが機能することはわかっているので、何が問題なのかわかりません。
多くの編集を行った後も、まだ同じ問題がありますが、実質的に同じコードを Python で実行すると、Python コードが実行され、実際に結果が返されます。変更されたコードは次のとおりです。
public class PrimeNumtoPi {
static double pi = Math.PI;
static double accuracy = 0.1;
static int range = 10000;
//checks whether an int is prime or not.
static boolean isPrime(int n) {
if(n % 2 == 0) {
return false;
} else {
int i = 3;
while (i < n / 2) {
if(n % i == 0) {
return false;
}
i += 2;
}
}
return true;
}
public static int nearestwhole(double n) {
double remainder = n%1;
if(remainder >= 0.5) {
return (int) (n - remainder + 1);
} else {
return (int)(n - remainder);
}
}
public static boolean isClose(double n) {
if(abs(n - pi) < accuracy) {
return true;
} else {
return false;
}
}
public static double abs(double n) {
if(n < 0) {
return n * -1;
} else {
return n;
}
}
public static void main(String[] args) {
int current = 3;
while(current <= range) {
int numerator = nearestwhole(current * pi);
if (isPrime(numerator)) {
if(isClose(numerator/current) == true) {
System.out.println(numerator + " and " + current);
}
}
current += 2;
while(isPrime(current) == false) {
current += 2;
}
}
}
}