使用java判断质数的三种方法
方法一:质数只能被1和它本身整除
import java.util.Scanner;public class Test {public static void main(String[] args) {int n = new Scanner(System.in).nextInt();int i = 2;for (;i < n;i++){if (n % i == 0){System.out.println(n + "不是素数");break;}}//将2~(n-1)之间所有整数都除一遍,以确保其中没有可以整除的数if (i == n){System.out.println(n + "是素数");}}
}
方法二:一个数总能写成“n = a * b”的形式,a和b之间一定有一个数不大于n/2
import java.util.Scanner;public class Test {public static void main(String[] args) {int n = new Scanner(System.in).nextInt();int i = 2;for (;i < n/2;i++){if (n % i == 0){System.out.println(n + "不是素数");break;}}//将2~(n/2)之间所有整数都除一遍,以确保其中没有可以整除的数//每一个整数都可以看做有两个数相乘得到,且每一个整数不会超过原整数的一半,除了原整数本身if (i > n/2){System.out.println(n + "是素数");}}
}
方法三:每一个整数都可以看做由两个数相乘得到,且每个乘数不大于原整数的平方根
import java.util.Scanner;public class Test {public static void main(String[] args) {int n = new Scanner(System.in).nextInt();int i = 2;for (;i <= Math.sqrt(n);i++){if (n % i == 0){System.out.println(n + "不是素数");break;}}if (i > Math.sqrt(n)){System.out.println(n + "是素数");}}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
