java求素数问题
发布网友
发布时间:2022-04-19 09:48
我来回答
共2个回答
热心网友
时间:2023-10-02 04:09
你的逻辑有问题,好好看看。if(xx){xxx}else{xxxx}这个逻辑不对
你自己看,如果输入2,2的平方根比2小吧,你的下面的循环就不成立,所以直接结束。
如果输入 9,9的平方根是3,当i=2时,2《=3,先走if条件(9%2!=0)直接进入else{XX},当然会输出9不是素数,然后break。
你还是把循环知识再看看吧。
看上一回答,正确代码在那里,嫌我啰嗦直接跳过。追问、、可是它为啥不先判断if(a<2)这个东东==
热心网友
时间:2023-10-02 04:10
不是素数那里直接return
System.out.print("请输入一个数");
int a = new Scanner(System.in).nextInt();
if (a <= 2)
{
System.out.print("素数不能小于2");
}
else{
for (int i = 2; i <= Math.sqrt(a); i++) {
System.out.print("哈哈");
if (a % i == 0) {
System.out.println(a + "不是素数");
return;
} else {
if(i==Math.sqrt(a))
System.out.println(a + "是素数");
break;
}
}
}