【问题标题】:printing out prime numbers from array从数组中打印素数
【发布时间】:2010-12-30 11:19:51
【问题描述】:

我想用方法打印出数组中的所有素数。我可以用一个 int 做到这一点 但不知道如何从数组中返回某些数字。感谢您的帮助!

public static boolean isPrime(int [] tab) {
        boolean prime = true;
        for (int i = 3; i <= Math.sqrt(tab[i]); i += 2)
            if (tab[i] % i == 0) {
                prime = false;
                break;
            }
        for(int i=0; i<tab.length; i++)
        if (( tab[i]%2 !=0 && prime && tab[i] > 2) || tab[i] == 2) {
            return true;
                } else {
            return false;
        }
        //return prime;

}

谢谢你们俩。好像解决了:

public static void isPrime(int[] tab) {
        for (int i = 0; i < tab.length; i++) {
            if (isPrimeNum(tab[i])) {
                System.out.println(tab[i]);
            }
        }


    }

    public static boolean isPrimeNum(int n) {
        boolean prime = true;
        for (long i = 3; i <= Math.sqrt(n); i += 2) {
            if (n % i == 0) {
                prime = false;
                break;
            }
        }
        if ((n % 2 != 0 && prime && n > 2) || n == 2) {
            return true;

        } else {
            return false;
        }
    }

【问题讨论】:

    标签: java arrays numbers primes


    【解决方案1】:

    假设你有:

    • 一个整数数组,有些是素数,有些不是素数。
    • 用于测试其中一个数字是否为素数的函数。

    简单地遍历数组,并为每个数字:

    if (isPrime(n)) {
        system.out.println(n);
    }
    

    您可能不想尝试一次执行多个 int,一次一个应该更容易编码。

    【讨论】:

      【解决方案2】:

      我建议你把它分成两种方法:

      • 一种判断单个数是否为素数的方法
      • 一种遍历数组的方法,使用每个数字调用第一个方法,并打印出该方法返回 true 的值。

      这将两个问题巧妙地分开。如果您不知道如何执行此操作,请详细说明您觉得哪一点很难。 (我假设这是家庭作业,这就是为什么我没有只包含代码。)

      【讨论】:

        猜你喜欢
        • 2020-10-17
        • 2011-03-23
        • 1970-01-01
        • 2011-04-21
        • 2022-01-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多