楼主分数倒是不少 public boolean isZhishu(int x,int a) { if (a < x) { if (x % a == 0) return false; else return isZhishu(x,a+1);} else return true;} 运行isZhishu(x,2);既可以得到最终结果
建议把2楼代码改一下:a < x/2 即可。这样改过,速度快多了。 public boolean isZhishu(int x, int a) { if (a < x/2) { if (x % a == 0) return false; else return isZhishu(x, a + 1); } else return true; }
public class Recursion { /* * 用递归判断一个数是不是质数? */ static int numberO; static boolean flag = true; public static void main(String[] args) { for (int i = -100; i < 100; i++) { if (isPrimeNumber(i) > 0) System.out.println(i + " 是质数"); else System.out.println(i + " 是非质数"); flag = true; } } private static int isPrimeNumber(int number) { if (flag) { number = numberO = Math.abs(number); flag = false; if (numberO < 2) return -1; } if (number > 2 && (numberO % (--number)) == 0) return -1; else return number > 2 ? isPrimeNumber(number) : 1; } }
public boolean isZhishu(int x,int a)
{
if (a < x) {
if (x % a == 0)
return false;
else
return isZhishu(x,a+1);}
else
return true;}
运行isZhishu(x,2);既可以得到最终结果
public boolean isZhishu(int x, int a)
{
if (a < x/2)
{
if (x % a == 0)
return false;
else
return isZhishu(x, a + 1); }
else
return true; }
/*
* 用递归判断一个数是不是质数?
*/
static int numberO;
static boolean flag = true; public static void main(String[] args) {
for (int i = -100; i < 100; i++) {
if (isPrimeNumber(i) > 0)
System.out.println(i + " 是质数");
else
System.out.println(i + " 是非质数");
flag = true;
}
} private static int isPrimeNumber(int number) {
if (flag) {
number = numberO = Math.abs(number);
flag = false;
if (numberO < 2)
return -1;
}
if (number > 2 && (numberO % (--number)) == 0)
return -1;
else
return number > 2 ? isPrimeNumber(number) : 1;
}
}
for(int j=2;j<i;j++){
if(i%j==0){
break
}
}
if(i==j){
system.out.println("质数是"+i)
}