【代码】递归方法求质数

前言

通过递归的方法求一个数是否是质数

源代码

未使用递归

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package com;

import java.util.Scanner;

public class ApplicationDefault {

public static void main(String[] args) {
System.out.println("输入一个数:");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
boolean flag = true;
for (int i = 0; i < num; i++) {
if (i==0 || i==1) {
continue;
}
if (num%i==0) {
flag = false;
break;
}
}

if (flag) {
System.out.println("是质数");
} else {
System.out.println("不是质数");
}
sc.close();
}

}

使用递归

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package com;

import java.util.Scanner;

public class Application {

public static void main(String[] args) {
System.out.println("输入一个数:");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
if (num==0) {
System.out.println("既不是质数,也不是合数");
} else if (num==1) {
System.out.println("是质数");
} else if (num==2) {
System.out.println("是质数");
} else if (num<0) {
System.out.println("输入的数字有误");
} else {
boolean flag = isPrime(num);
if (flag) {
System.out.println("是质数");
} else {
System.out.println("不是质数");
}
}
sc.close();
}
static int point = 2;
public static boolean isPrime(int num) {
if (point==(num-1)) {
return true;
}
if (num%point==0) {
return false;
}
point++;
return true&&isPrime(num);
}
}

完成