簡體   English   中英

使用數組(JAVA)查找前100個質數

[英]Finding the first 100 prime numbers using array (JAVA)

我正在嘗試使用java中的數組顯示前100個素數,它沒有問題,但是輸出在每個數字之前顯示零:-我想要的是:2 3 5 11 13 17 ....-輸出i正在:2 03 05 011 013 017 ....有人知道如何從輸出中的數字中刪除零數字嗎? 謝謝

  import java.util.Scanner;

     class ttar

      {  



       public static void main(String args[])

         {
            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];

                }

            }
             System.out.println("These are the first 100 prime numbers");
             System.out.println(r);

             }
             }

0來自此行:

r+= array[m];

您永遠不會為數組分配任何值,因此所有元素均為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++;
    }
}}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM