青山632
2021-07-13 23:01
采纳率: 53.3%
浏览 14

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

创建一个长度为5的数组 随机向里面保存1-100之间的数,保证这个5个数不能重复而且必须都是质数,并且按顺序排列 方法都懂 但是本人比较菜写不出来

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 已采纳

    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]);
              
           }
    
    }
    
    点赞 1 打赏 评论
  • qfl_sdu 2021-07-13 23:31

    代码如下,如有帮助,请帮忙采纳一下,谢谢。

    
    
    
    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]);
              
           }
    
    }
    
    点赞 1 打赏 评论
  • rua!!!! 2021-07-13 23:04

    首先新建一个列表,里面手动输入质数,然后用choice重复五次,结果插入新列表,最后用sort排列列表

    点赞 打赏 评论

相关推荐 更多相似问题