java - 计算素数(新手)

标签 java loops primes

该程序检查用户输入的数字是否为素数。

我的问题在if语句中。由于某些原因,Boolean永远不会切换。如果数字为质数,则只会给出两个结果。

我想念什么?

import java.util.Scanner;
public class Prime 
{

     public static void main(String[] args)
    {
       System.out.println("Enter a number to check if it is prime:");
       Scanner kb = new Scanner(System.in);
       int n = kb.nextInt();
       boolean more = true;

       do
       {
           for (int i = 2; i <= n; i++)
           {
               if (n <=1 || n%i==0) 
               {
                    System.out.println(n + " is not prime");
                    more = false;
               }              
            } 
       }
       while (more);
       System.out.println(n + " is prime");
    }
}

最佳答案

删除if()内部的打印件,并在do while循环后使用以下代码

if(more)
 System.out.println(n + " is prime");
else
 System.out.println(n + " is not prime");


并且您也不需要do while循环将其删除。完整代码

 System.out.println("Enter a number to check if it is prime:");
 Scanner kb = new Scanner(System. in );
 int n = kb.nextInt();
 boolean more = true;


 for (int i = 2; i <= n / 2; i++) {
    if (n <= 1 || n % i == 0) {

        more = false;
        break;
    }
 }
 if (more) System.out.println(n + " is prime");
 else System.out.println(n + " is not prime");


Demo

关于java - 计算素数(新手),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32786291/

相关文章:

java - 用Java读取文本文件并处理该文件

java - 如何将 float 四舍五入到小数点后两位,合并当前月份和年份,并修复循环?

java - 计算 2 的极大次方

c - 2 个数字的公约数之和

java - Apache 2.4 + Glassfish Server 2.1 发布过大错误

java - 如何在 Spring Boot 中使用 KMS 之前先解密 application.properties 中的密码

java - 我的 Int() 总是返回 0?

r - 循环向量(R 中的自省(introspection)?)或其他方法

vba - PowerPoint VBA - 循环所有幻灯片、所有形状、查找图表、将数据标签颜色设置为黑色

java - 如何在我的代码中使用 BigInteger 来计算素数?