题目描述
如何判断我们输入的一个整数是否是素数
思路分析:
我们根据素数的定义可以知道,只要我们从1遍历到n,判断其能否被n整除即可判断它是否是素数
思路改进:
一个数如果有两个因数,那么肯定一个在sqrt(n),即平方根的左边,另一个在其右边,因此我们只需判断2-sqrt(n)之间,能否被整除即可
public class exercise03 {
//判断是否为素数的方法
public static boolean isSushu(int n){
if (n<=3){
return true;
}
//判断n是否能被一个小于sqrt(n)的数整除
for(int i=2;i<(int)Math.sqrt(n);i++){
if(n%i==0){
return false;
}
}
return true;
}
//主函数
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
boolean flag ;
flag = isSushu(n);
if(flag){
System.out.println(n+"是素数");
}else {
System.out.println(n+"不是素数");
}
}
}
}
运行结果