确定素数Java

CBH*_*CBH 2 java

我正在编写一个程序,它接受一个整数作为输入,并输出一个消息,无论输入的整数是否为素数.我使用的算法如下... 要求: n> 0,要求: isPrime < - true,对于 i = 2到sqrt(n)do,如果 n%i = 0 isPrime < - false 结束ifend for Then打印数字是否为Prime.这是我的代码到目前为止,代码不起作用,我无法找到问题.

     public static void main(String[] args) {
    Scanner kb = new Scanner(System.in);
    int n;
    System.out.println("Input a positive integer");
    n = kb.nextInt();

        while (n>0){
            boolean isPrime = true;
            for (int i =2; i <= n/2;i++){
                if(n % i == 0){
                    isPrime = false;
                    break;
                }
            }
            if (isPrime = true){
                System.out.println("The integer, " + n + ", is a prime");
                break;
            }
            else{
                System.out.println("The integer, " + n + ", is not a prime");
                break;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果有人能提供帮助,我将不胜感激,谢谢!

rge*_*man 8

你的问题在于这一行:

if (isPrime = true){
Run Code Online (Sandbox Code Playgroud)

你做了一个作业,而不是比较true,所以声明总是如此true.

使用==比较布尔值,或更好,但因为isPrime已经是boolean:

if (isPrime){
Run Code Online (Sandbox Code Playgroud)