2013-08-01 23 views
-1

如何在我的代碼保存素數到一個數組中,並調用2隨機他們如何保存素數(1-100)數組,並調用2黃金隨機

的這是我編輯的代碼# 3,其由@Stephenç建議

public class prima { 

public static int[] getPrima(int aw, int ak) { 
     int [] primes; 
     int jmlPrim=0; 

     int h = 0; 
     primes = new int[5]; 

     boolean isPrima; 
     for (int i = 2; i <= ak; i++) { 
      isPrima = true; 
      for (int j = 2; j < i; j++) { 
       if (i % j == 0) { 
        isPrima = false; 
        break; 
       } 
      } 
      if (isPrima == true) { 
       //System.out.print(i + " "); 
       jmlPrim++; 
       primes[jmlPrim]=i; 

      } 

     } 
      /*here the code for random prime number*/ 
      final Random random = new Random(); 
     final int i1 = random.nextInt(primes[jmlPrim]); 
     final int prime1 = primes[i1]; 
     System.out.println("i1= " + i1); 

     return null; 

    } 
public static void main(String[] args) { 


    System.out.println(prima.getPrima(1, 10)); 

} 

} 

我想prima.getPrima(1100)的結果保存在一個數組,

我理解什麼是@Stephen C平均之前,I編輯我的代碼如上,

@Stephen C,請糾正......,如何檢查或確保存儲在

primes[jmlPrim]; 

加法,我添加代碼從素數[jmlPrim]隨機值我的素數;

final Random random = new Random(); 
      final int i1 = random.nextInt(primes[jmlPrim]); 
      final int prime1 = primes[i1]; 
      System.out.println("i1= " + i1); 

,這是我得到當我運行該代碼

array= 2,array= 3,array= 5,array= 7,i1= 4 
null 

爲什麼I1 = 4?因爲我知道4不是質數

+0

請澄清 - 什麼是你想再做一次?你卡在哪裏? –

+0

也許使用'java.util.ArrayList '? – johnchen902

+0

你想存儲素數字串數組?爲什麼?使用Math.random()生成1到1000之間的隨機數,並將其用作數組索引或列表索引。我不清楚問題是什麼。 – Jayz

回答

1

考慮到問題的性質,這可能是「學習練習」......所以我不打算提供代碼。

這裏的「第一刀」,爲「保存在素數陣」部分:

  1. 更改方法的返回類型int[]
  2. 分配適當大小的數組來保存質數。
  3. 添加一個變量,它是數組中下一個要添加素數的位置。
  4. 當你找到一個素數,加上這樣的:

    primes[index] = prime; 
    index++; 
    
  5. 返回數組

這是所有基本 「的Java 101」 的東西。如果您很難理解如何操作,請查看您的講義,課本或Oracle Java教程。

(請注意,這不處理,你不知道有多少素數有awalakhir之間的問題。)


你問題的第二部分... 「我不知道如何打電話給他們的2個隨機「 ...是不可理解的。我不會猜測你的意思。

+0

我上面編輯了我的代碼...,請更正我... –

+0

請更正我... –

+0

@adhit_yogapratama - 編寫和調試代碼您的工作:-) –

0

如何調用2隨機他們......(給出一個數組「素數」)

final int n = primes.length; 
final Random random = new Random(); 
final int i1 = random.nextInt(n); 
int i2 = i1; 
while (i2 == i1) { 
    i2 = random.nextInt(n); 
} 
final int prime1 = primes[i1]; 
final int prime2 = primes[i2]; 
+0

我嘗試代碼...,有結果數組= 2,陣列= 3,陣列= 5,陣列= 7,I1 = 4 空 4不是素數:( –