我写了一个关于素数的代码,会听到您的意见或任何有关如何改进代码的建议。我是Java的初学者。

public static void main(String[] args) {

    Scanner s = new Scanner(System.in);

    boolean a;

    System.out.println("Please enter a number: ");
    int zahl = s.nextInt();

    if(zahl <= 0) {
       System.out.println("Please enter a positive number without zero.");
       return;

    }

    a = true;
    for (int i = 2; i < zahl; i++) {

        if (zahl % i == 0) {
            a = false;
        }
    }

    if (a == true) {
        System.out.println("Is Prim");
    }

    if (a==false){
        System.out.println("Not a prim");
    }
}

最佳答案

最简单的操作如下

代替

 for (int i = 2; i < zahl; i++) {

        if (zahl % i == 0) {
            a = false;
        }
    }


更改for循环

  for (int i = 2; i < Math.sqrt(zahl); i++)


如果没有平方根之前的数字除以zahl,则除平方根以外的任何数字都不会对其进行除法(它们将是较早除法的结果)。

另外,为了输出答案,您可以执行以下操作:

System.out.println(zahl + " is " + ((a) ? "prime"
            : "not prime"));



那是使用三元运算符?:

09-25 22:06