问题
编写一个程序,输入自然数 a 和 b。输出a和b之间的素数。
分析
素数就是质数,对a和b之间的数进行是否含有因子进行测试。就是对a和b之间的数:m % 2 一直到 m % m-1 检测。
Java实现
public static void primeNumber(){
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
if (a <= 0 || b <= 0) {
System.out.println("请输入2个自然数");
return;
}
if (a > b){
int swap = a;
a = b;
b = swap;
}
for (int i = a+1; i < b; i++) {
boolean flag = true;
System.out.println(a+"和"+b+"之间的素数为:");
if (i == 2){
System.out.print(2+" ");
continue;
}
if (i % 2 == 0) continue;
for (int j = 2; j < i; j++) {
if (i % j == 0) flag = false;
}
if (flag) {
System.out.print(i+" ");
}
}
}
- 时间复杂度:O(n^2)
- 空间复杂度:O(1)