Java 素数检查与用户输入

标签 java input numbers controls

我刚刚开始为大学编码,我必须编写一个程序来检查用户输入(整数)是否是质数。

我取得了不错的成绩,但我想征求您的意见以及我是否忘记了什么。

package uebung_3;


import java.util.Scanner;

public class PrimZahlen {

    public static void main(String[] args) {

        System.out.print("Enter a number: ");
        Scanner key = new Scanner(System.in);
        int in = key.nextInt();

        prim(in);
    }

    private static void prim(int in) {//int in is a Scanner var.
        if (in == 2 || in == 3) {

            System.out.println(in + " is a prime number");
        } else if (in == 5 || in == 7) {
            System.out.println(in + " is a prime number");
        } else if (in % 2 == 0 || in % 3 == 0) {
            System.out.println(in + " is not a prime number.");
        } else if (in % 5 == 0 || in % 7 == 0) {
            System.out.println(in + " is not a prime number.");
        } else {
            System.out.println(in + " is a prime number.");
        }
    }

}

最佳答案

你可以用更数学的方式来做,而不仅仅是检查素因数 7。 这是我的解决方案:

public static void main(final String[] args) {
    System.out.print("Enter a number: ");
    final Scanner key = new Scanner(System.in);
    final int in = key.nextInt();

    if (isPrime(in)) {
        System.out.println(in + " is a prime number");
    } else {
        System.out.println(in + " is not a prime number");
    }
}

private static boolean isPrime(final int in) {
    if (in < 2) return false;

    for (int i=2; i <= Math.sqrt(in); i++){
        if (in%i == 0){
            return false;
        }
    }
    return true;
}

关于Java 素数检查与用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46877785/

相关文章:

java - spoj 下一个回文中的时间限制超出错误

java - 如何用 Java 构建线程 TCP 客户端

c++ - 从文件中读取混合类型行

java - 多维数组 : Java. 这段代码是如何工作的?

java - 行过滤器在单元格更新事件中无法按预期工作

jQuery 验证输入类型数字

reactjs - 来自 dnd-kit 的监听器正在干扰输入 :checkbox's onChange event

python 如何使用通配符查找数字

c++ - 可以将 2.1834e+14 转换为实数

algorithm - 关于纯随机数系列的困惑