利用java判断质数的3种方法代码示例
作者:爬楼梯的猫
这篇文章主要给大家介绍了关于利用java判断质数的3种方法,在大于1的整数中,如果只包含1和本身这两个约数,就被称为质数(素数),文中给出了详细的代码示例,需要的朋友可以参考下
方法一:质数只能被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 + "是素数"); } } }
附:判断1-100所有数是否为质数
实现代码
public class Test5 { public static void main(String[] args) { System.out.println(2 + "这是质数"); for (int i = 3; i <= 10; i++) { boolean flag = true; for (int j = 2; j < i; j++) { if (i % j == 0) { System.out.println(i + "这不是质数"); flag = false; break; } } if (flag) { System.out.println(i + "这是质数"); } } } }
实现结果
总结
到此这篇关于利用java判断质数的3种方法的文章就介绍到这了,更多相关java判断质数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!