JAVA 输入一个数判断其是否是素数

import java.util.*;
public class panduansushu {
public static void main(String args[]){
int x , y , j ;
Scanner i = new Scanner(System.in);
System.out.print("请输入一个数:");
y = i.nextInt();
j = (int) y / 2 ;
for( x = 2 ; x <= j ; x++){
if(y % x == 0){
System.out.println("此数不为素数");break;
}
}
}
}
请问怎么在这个程序上添加“此数为素数”这句,而又不影响到程序的正确性?

public class panduansushu {
public static void main(String args[]) {
int x, y, j;
Scanner i = new Scanner(System.in);
System.out.print("请输入一个数:");
y = i.nextInt();
j = (int) y / 2;
for (x = 2; x <= j; x++) {
if (y % x == 0) {
System.out.println("此数不为素数");
break;
}
}
if (x > j) {
System.out.println("此数为素数");
}
}
}追问

if (x > j) {
System.out.println("此数为素数");
}
可以说一下为什么要加这句吗?因为我是一个新手不太明白

追答

for (x = 2; x <= j; x++) {
if (y % x == 0) {
System.out.println("此数不为素数");
break;
}
}
经过这个循环可以判断这个数是不是素数,如果循环完成(x从2到j)这说明这个数是素数;所以下面只需要判断一下x是否是大于 j ,如果大于这说明循环完成,这个数就是素数,如果x<j 这说明循环没有完成是通过break语句跳出来的,则这个数肯定不是素数。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-15
public class Test{

public void method(int num){

boolean flag = false;

if(num<=1){
System.out.println(num+"不是素数");
}else{
for(int i=2;i<num;i++){
if(num%i==0){
flag = true;
}
}

if(flag){
System.out.println(num+"不是素数");
}else{
System.out.println(num+"是素数");
}

}
}

public static void main(String[] args) {
new Test().method(9);
}

}
第2个回答  2012-09-16
import java.util.Scanner;
public class Test04 {
public static void main(String[] args){
int n;
int i;
Scanner scr = new Scanner(System.in);
System.out.println("请输入需判断的数据 n: ");
n = scr.nextInt();
for( i = 2;i < n;i++){
if(n % i == 0){
System.out.println("不是素数");}
else{
System.out.println("是素数");
}
break;
}

}}
这个你比较好理解的
第3个回答  2020-10-29

用JAVA编写可以判断一个数范围内的所有素数的代码

相似回答