创建一个长度为5的数组 随机向里面保存1-100之间的数,保证这个5个数不能重复而且必须都是质数,并且按顺序排列 方法都懂 但是本人比较菜写不出来
1.定义5个元素的数组;
2.用Random类的nextInt方法循环嵌套生产5个数;
3.判断生产是数是否已经存在,再判断是否为质数;
public class Test {
public static void main(String[] args)
{
int[] arr = new int[5];
int num=0;
boolean b = false;
Random rnd = new Random();
for(int i=0;i<5;i++){
while(true){
b = false;
num = rnd.nextInt(100); //产生0-100的随机数
//判断是否是质数
for(int j=2;j<num;j++){
if(num%j == 0){
b = true;
break;
}
}
b = false;
//判断是否已经在数组中
for(int j=0;j<i;j++){
if(arr[j] == r){
b = true;
break;
}
}
if(b) continue; //已经存在,重新生成
if(!b){
arr[i] = num;
break;
}
}
}
//输出
for(int i=0;i<5;i++)
System.out.println(arr[i]);
}
}
代码如下,如有帮助,请帮忙采纳一下,谢谢。
public class Test2 {
public static void main(String[] args)
{
int[] arr = new int[5];
for(int i=0;i<5;i++){
for(;;){
boolean b = false;
int r = (int)(Math.random()*100); //产生0-100的随机数
if(r <2) continue;
//判断是否已经在数组中
for(int j=0;j<i;j++){
if(arr[j] == r){
b = true;
break;
}
}
if(b) continue; //已经存在,重新生成
//判断是否是质数
for(int j=2;j<r;j++){
if(r%j == 0){
b = true;
break;
}
}
if(!b){
arr[i] = r;
break;
}
}
}
//排序
for(int i=0;i<4;i++){
for(int j=0;j<4-i;j++){
if(arr[j] > arr[j+1]){
int t = arr[j];
arr[j] = arr[j+1];
arr[j+1]= t;
}
}
}
//输出
for(int i=0;i<5;i++)
System.out.println(arr[i]);
}
}
首先新建一个列表,里面手动输入质数,然后用choice重复五次,结果插入新列表,最后用sort排列列表