
判断一个数是否是素数(Java版)
·
目录
遍历从2到n-1的所有数字,判断是否有可以被n整除的数,如果没有,则为素数。
判定的范围改为[2 -,n/2]。当 i>n/2 时,则判定为素数。
在Java中判定素数的范围也可以到sqrt(n),(对n开平方)。对应的函数为:Math.sqrt(n)
素数的定义
素数又称质数,一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做素数,否则称为合数(规定1既不是素数也不是合数)。
求解素数
素数判定法1:
遍历从2到n-1的所有数字,判断是否有可以被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 = 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中的循环条件比较浪费时间,下面进行对代码的优化。
优化法2:
判定的范围改为[2 -,n/2]。当 i>n/2 时,则判定为素数。
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+"是素数");
}
}
}
优化法3:
在Java中判定素数的范围也可以到sqrt(n),(对n开平方)。对应的函数为:Math.sqrt(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循环的外面,不能把它放到循环里。
推荐内容
阅读全文
AI总结
更多推荐
相关推荐
查看更多
DeepSeek-V3-0324

DeepSeek最新推出DeepSeek-V3-0324版本,参数量从6710亿增加到6850亿,在数学推理、代码生成能力以及长上下文理解能力方面直线飙升。
Open-Sora

Open-Sora:为所有人实现高效视频制作
Python

All Algorithms implemented in Python
热门开源项目
活动日历
查看更多
直播时间 2025-04-09 14:34:18

樱花限定季|G-Star校园行&华中师范大学专场
直播时间 2025-04-07 14:51:20

樱花限定季|G-Star校园行&华中农业大学专场
直播时间 2025-03-26 14:30:09

开源工业物联实战!
直播时间 2025-03-25 14:30:17

Heygem.ai数字人超4000颗星火燎原!
直播时间 2025-03-13 18:32:35

全栈自研企业级AI平台:Java核心技术×私有化部署实战
所有评论(0)