这个函数需要输入一个整数N。该函数必须打印出2到N(包括N本身,如果N是质数)之间的所有质数。
我有这个函数并且它可以运行,但是它会跳过一些质数甚至包括一些偶数,例如8。我似乎找不到导致这种情况的错误。
以下是我的代码:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class PrimeNumbers {
List <Integer> primeList = new ArrayList<Integer>();
public ArrayList<Integer> findPrimes(int n){
if(n == 2){
primeList.add(n);
}
else{
//should I have i=i+2 instead of i++ to move faster?
//If so, by doing this, it causes weird and different
//output when running
for(int i=2; i<=n; i++){
if(n%i != 0){
primeList.add(i);
}
}
}
return (ArrayList<Integer>) primeList;
}
public static void main(String[] args) {
PrimeNumbers pn = new PrimeNumbers();
System.out.println(pn.findPrimes(15));
}
}
n
的所有非因子。 - Michael Yaworski