如何将我的代码中的素数保存到数组中并随机调用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不是素数
答案 0 :(得分:1)
鉴于问题的性质,这可能是“学习练习”......所以我不打算提供代码。
这是“保存阵列中的素数”部分的“第一次切割”:
int[]
。当您找到素数时,请按以下方式添加:
primes[index] = prime;
index++;
返回数组
这是所有基本的“Java 101”内容。如果您无法理解如何操作,请查看您的讲义,教科书或Oracle Java教程。
(请注意,这并不涉及您不知道awal
和akhir
之间有多少素数的问题。)
你问题的第二部分...... “我不知道如何调用它们的随机性” ...是不可理解的。我不会猜测你的意思。
答案 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];