我大约一个月前开始学习Java,今天我看到了我无法解决的问题。
问题是:
编写一个名为isPrime
的方法,该方法将整数作为参数并返回true
如果参数是素数,否则为false
。在一个完整的程序中演示该方法。
第二部分说:
使用您在上一个程序中编写的isPrime
方法
将所有从1
到100
的质数的列表存储在文件中。
这是我的代码,不起作用:
import java.io.*;
public class PrimeNumbers {
public static void main (String args[]) throws IOException {
PrintWriter outputFile = new PrintWriter("PrimeNumber.txt");
int j = 0;
for (int i = 0; i < 100; i++) {
isPrime(i);
outputFile.println("Prime nums are:" + i);
}
}
public static boolean isPrime (int j) {
int i;
for (j = 2; j < i; j++) {
if (i % j == 0) {
return false;
}
if (i == j) {
return true;
}
}
}
}
最佳答案
在true
-isPrime
中返回if (i == j)
的条件永远无法满足,因为它位于条件为j < i
的循环内。相反,只需在循环后返回true
。如果循环结束而没有返回false
,则可以确定输入数字是素数。
您使用isPrime
的代码未检查此方法返回的值。您必须检查它以确定是否将数字写入输出文件。