教程中的简单isPrime函数不起作用

时间:2018-07-07 21:25:10

标签: java

System.out.pritnln不会从以下代码中打印出任何内容:

我对此并不陌生,所以我真的不知道问题出在哪里。它适用于我正在关注的教程中的那个人。我正在使用NetBeans IDE 8.2

 public static void main(String[] args) {
     int count = 0;
     for (int i = 10; i < 50; i++) {
         if (isPrime(i)) {
             count++;
             System.out.println("Number " + i + " is a prime number");
             if (count == 3) {
                 System.out.println("Exiting the loop");
                 break;
             }
         }
     }
 }

 public static boolean isPrime(int n) {  
     if (n == 1) {
         return false;
     }
     for (int i = 2; i <= n / 2; i++) {
         if (n % 1 == 0) {
             return false;
         }
     }
     return true;
 }

2 个答案:

答案 0 :(得分:4)

您的isPrime函数中有错字。 现在,它的构造方式将始终返回false

您必须替换

if (n % 1 == 0)

使用

if (n % i == 0)

现在应该可以了。

答案 1 :(得分:0)

此功能public static boolean isPrime(int n)中存在问题 在if(n==1)里面是什么情况!

为此,您必须更改为if(n==i)

public class Try0 {

    /**
     * @param args the command line arguments
     */
   public static void main(String[] args) {
    int count = 0;
            for (int i = 10; i < 50; i++) {
                if (isPrime(i)) {
                    count++;
                    System.out.println("Number " + i + " is a prime number");
                    if (count == 3) {
                        System.out.println("Exiting the loop");
                        break;
                    }
                }
            }
        }
     public static boolean isPrime(int n) {  

            if (n == 1) {
                return false;
            }
            for (int i = 2; i <= n / 2; i++) {
                if (n % i == 0) {
                    return false;
                }
            }
            return true;
        }

}

输出:

Number 11 is a prime number
Number 13 is a prime number
Number 17 is a prime number
Exiting the loop