目录 素数的定义 求解素数 素数判定法1: 遍历从2到n-1的所有数字,判断是否有可以被n整除的数,如果没有,则为素数。 优化法2: 判定的范围改为[2 -,n/2]。当 i>n/2 时,则判定为素数。 优化法3: 在Java中判定素数的范
目录
遍历从2到n-1的所有数字,判断是否有可以被n整除的数,如果没有,则为素数。
判定的范围改为[2 -,n/2]。当 i>n/2 时,则判定为素数。
在Java中判定素数的范围也可以到sqrt(n),(对n开平方)。对应的函数为:Math.sqrt(n)
素数又称质数,一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做素数,否则称为合数(规定1既不是素数也不是合数)。
import java.util.Scanner;public class HomeWork { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入要判断的数字:"); int n = sc.nextInt(); int i = 0; for ( i = 2; i <= n-1 ; i++) { if(n % i == 0){ System.out.println(n+"不是素数"); break; } } if(i == n){ System.out.println(n+"是素数"); } }}
法1中的循环条件比较浪费时间,下面进行对代码的优化。
import java.util.Scanner;public class HomeWork { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入要判断的数字:"); int n = sc.nextInt(); int i = 0; for ( i = 2; i <= n/2 ; i++) { if(n % i == 0){ System.out.println(n+"不是素数"); break; } } if(i > n/2){ System.out.println(n+"是素数"); } }}
import java.util.Scanner;public class HomeWork { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入要判断的数字:"); int n = sc.nextInt(); int i = 2; for(;i <= Math.sqrt(100);i++){ if(n % i == 0){ System.out.println(n+"不是素数"); break; } } if(i >Math.sqrt(n)){ System.out.println(n+"是素数"); } }}
注意:判断是素数的条件是在for循环的外面,不能把它放到循环里。
来源地址:https://blog.csdn.net/weixin_47285608/article/details/126069521
--结束END--
本文标题: 判断一个数是否是素数(Java版)
本文链接: https://www.lsjlt.com/news/424854.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-03
2024-04-03
2024-04-01
2024-01-21
2024-01-21
2024-01-21
2024-01-21
2023-12-23
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0