使用数组查找前100个素数(JAVA)

时间:2016-01-07 10:40:27

标签: java arrays

我试图在java中使用数组显示前100个素数,它没有问题,但输出在每个数字前显示为零: - 我想要的是: 2 3 5 11 13 17 .... - 我得到的输出: 2 03 05 011 013 017 .... 有谁知道如何从输出中的数字中删除零数字? 谢谢

setup.py

2 个答案:

答案 0 :(得分:2)

0来自这一行:

r+= array[m];

您永远不会为数组指定任何值,因此所有元素都为0.

为什么你首先拥有阵列?

答案 1 :(得分:0)

为什么你在你的代码中做了r + = array [m]。如果你在@Henry中习惯了这一行会导致问题,如果你在代码中注释这一行就会得到你想要的结果。

int[] array = new int[542];
    int m;

    int primumnum;
    String r = "";


    for (m=0; m<=542; m++)
    {
        int counter = 0;

        for(primumnum=m; primumnum>=1; primumnum--)
        {
            if(m % primumnum == 0)
            {
                counter = counter + 1;
            }
        }
        if(counter == 2)
        {
            r = r + m + " ";
            //r+= array[m];

        }

    }

或者要获得素数,您也可以按照以下方式进行,

class GeneratePrime{
 public static boolean isPrime(int x)
    {
        for (int i = 2; i <= Math.sqrt(x); i++) {
            if (x % i == 0) {
                return false;
            }
        }

        return true;
    }

public static void main(String args[]){
    int currentNumber = 2;
    int primesFound = 0;

    while (primesFound < 100) {
        if (isPrime(currentNumber)) {
            primesFound++;

            System.out.print (currentNumber + " ");
            if (primesFound % 10 == 0) {
                System.out.println();
            }
        }

        currentNumber++;
    }
}}