当前位置: 首页 > 面试题库 >

从数组中打印质数

陶博耘
2023-03-14
问题内容

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

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的值。

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



 类似资料:
  • 为了测试一个程序,我编写了以下语句:

  • 问题内容: 我正在尝试用Java格式化两个数组以打印如下内容: 我正在使用以下代码: 但是我得到的是格式不正确的结果: 如何将所有列直接排列在顶部标题的下面? 有没有更好的方法可以做到这一点? 问题答案: 您应该看一下格式: 这将提供15个插槽,并在需要时在其中填充空格。 但是,我注意到您没有对数字进行右对齐,在这种情况下,您需要在书本字段中左对齐: 这是一个工作片段示例: 导致:

  • 问题内容: 我不知道如何将可变数量的变量传递给函数。我认为传入一个数组并使用数组键作为变量名可以代替将额外的变量传递给函数的需要,并且它起作用了(我敢肯定有一种更好的方法可以做到这一点,欢迎提出建议)。但是,我似乎无法从函数内部的数组中获取键。 数组: 函数内部: 函数内部的代码重新发出警告:为foreach()提供了无效的参数。如何将键从阵列中拉出? 问题答案: 您可以使用PHP的array_k

  • 当我打印出 我得到的回报是:

  • 问题内容: 我正在尝试计算素数,已经完成了。但是我只想计算和打印第n个质数(用户输入),而计算其余的(不会打印),只会打印第n个质数。 到目前为止,这是我写的内容: 这是我编写的用于计算从1到n的质数的程序。但是,我希望它仅显示第n个质数, 我想做的是每次进行int计数并对其进行 处理,当count == n时,它会打印出该数字,但是我不太清楚如何降落。 问题答案: 为了计算第n个素数,我知道两个