判断素数?
第一种方法:
思路:按照素数的定义出发,除了1与其本身相乘之外,不能被其他整数相乘得到的数称之为素数(质数),加入输入一个数为n,利用循环使循环变量i从2开始到n-1结束,如果n%i ==0 ,那么n存在除了1之外与他相除且结果存在的整数,即此时的n并非素数,如果n%i !=0,那么说明n并没有被[2,n-1]之间的数整除,所以就除了n本身了,故n是素数。
public static void main (String[ ] args){
Scanner scanner = new Scanner(System.in);
int n = scanner.next.Int();
int i = 2;
for(i=2;i<n;i++){
if(n%i==0){
System.out.println(n+"不是素数");
break;
}
}
if(i==n){
System.out.println(n+"是素数");
}
}
第二种方法:这个方法是在第一种方法上面的改进,一个数(n)如果被以因子相乘的方式分解的话,其中一个因子一定会小于等于n/2,所以这种方法是把第一种方法的步骤缩短一半。
public static void main (String[ ] args){
Scanner scanner = new Scanner(System.in);
int n = scanner.next.Int();
int i = 2;
for(i=2;i<=n/2;i++){
if(n%i==0){
System.out.println(n+"不是素数");
break;
}
}
if(i>n/2){
System.out.println(n+"是素数");
}
}
第三种方法:开根号,一个数(n)如果被以因子相乘的方式分解的话,其中一个因子一定会小于等于√n
public static void main (String[ ] args){
Scanner scanner = new Scanner(System.in);
int n = scanner.next.Int();
int i = 2;
for(i=2;i<=Math.sqrt(n);i++){
if(n%i==0){
System.out.println(n+"不是素数");
break;
}
}
if(i>Math.sqrt(n)){
System.out.println(n+"是素数");
}
}
以上就是所介绍的三种判断素数的方法。。。。