随机向里面保存1-100之间的数,保证这个5个数不能重复而且必须都是质数, 并且按顺序排列

创建一个长度为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排列列表