如何在数组中保存素数(1-100)并随机调用2素数

时间:2013-08-01 04:19:18

标签: java

如何将我的代码中的素数保存到数组中并随机调用2个

这是我编辑的代码#3,由@Stephen C建议

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(1,100)的结果保存在数组中,

在我理解什么是@Stephen C意思之前,我编辑我的代码,如上所述,

@Stephen C,请更正......,如何检查或确保我的素数存储在

primes[jmlPrim];

添加,我添加代码从primes [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不是素数

2 个答案:

答案 0 :(得分:1)

鉴于问题的性质,这可能是“学习练习”......所以我不打算提供代码。

这是“保存阵列中的素数”部分的“第一次切割”:

  1. 将方法的返回类型更改为int[]
  2. 分配一个适当大小的数组来保存素数。
  3. 添加一个变量,该变量是数组中的下一个位置,用于添加素数。
  4. 当您找到素数时,请按以下方式添加:

     primes[index] = prime;
     index++;
    
  5. 返回数组

  6. 这是所有基本的“Java 101”内容。如果您无法理解如何操作,请查看您的讲义,教科书或Oracle Java教程。

    (请注意,这并不涉及您不知道awalakhir之间有多少素数的问题。)


    你问题的第二部分...... “我不知道如何调用它们的随机性” ...是不可理解的。我不会猜测你的意思。

答案 1 :(得分:0)

如何调用它们的2个随机...(给定一个数组'primes')

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