繁体   English   中英

从数组中打印质数

[英]printing out prime numbers from array

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

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;
        }
    }

我建议您将其分为两种方法:

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

这将两个问题巧妙地分开了。 如果您确实坚持执行此操作,请提供您很难找到的详细信息。 (我假设这是家庭作业,这就是为什么我不仅仅包含代码。)

假设您有:

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

只需遍历数组,并对每个数字进行迭代:

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

您可能不想一次尝试执行多个int,一次编写一个应该更简单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM