我试图创建一种方法来检查数字是否为质数,但是在创建该方法时我得到的是0而不是void
。有没有一种方法可以跳过我在void
中获得0的位置。如果没有,请提出其他建议。
我尝试将a
替换为null
,但无法从null
投射到int
public int getPrime(int n) {
int a =0;
boolean k = true;
for (int i = 2 ; i<n;i++) {
if(n%i==0) k = false;
}
if(k==true) { a = n;
return a;}
else {return null;} //Here is the problem
答案 0 :(得分:0)
在此处使用非基本类型。整数与整数。这样您就可以在需要的地方返回null。
答案 1 :(得分:0)
我认为您正在尝试检查您的数字是否是主数字,该方法必须返回布尔值而不是整数。
public boolean isPrime(int n) {
for (int i = 2 ; i<n;i++) {
if(n%i==0) return false;
}
return true;
}
这不是最佳算法,但它适用于真实类型。
答案 2 :(得分:0)
是的,没有素数检查,结果为boolean
:
public static boolean isPrime(int n) {
if(n<2)
return false;
for(int i=(int)Math.sqrt(n); i>=2; i--)
if(n%i == 0)return false;
return true;
}
打印素数,不要打印非素数:
public static void main(String args[]) {
for(int i=0;i<100;i++)
if(isPrime(i))
System.out.println(i);
}