一、题目描述
描述
请补全预设代码中判断质数的方法。
输入描述:
一个大于1的整数
输出描述:
true/false
示例1
输入:2
输出:true
示例2
输入:9
输出:false
二、思路及解题方法
方法:暴力枚举
- 枚举从2 ~ N的每一个数
- 实际上不用枚举到N,只需要枚举到√N就行
注意:
1.不要使用sqrt()函数,直接求√n,因为该函数运算较慢
2。注意数据溢出,i * i <= n可能会溢出,推荐使用i <= n / i
代码如下:
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Main main = new Main();
Scanner scan = new Scanner(System.in);
int number = scan.nextInt();
System.out.println(main.isPrimeNumber(number));
}
public Boolean isPrimeNumber(int n) {
//枚举到根号n,注意溢出
for(int i = 2;i < n / i; i++){
//如果i可以整除n,说明n不是素数,直接return false
if(n % i == 0){
return false;
}
}
//遍历后还找不到能整除n的数,说明n是质数,return true
return true;
}
}
运行时间
38ms
占用内存
10976KB