为了账号安全,请及时绑定邮箱和手机立即绑定

如何在随机数组中找到素数?

如何在随机数组中找到素数?

守着星空守着你 2019-04-19 19:15:01
我在查找随机生成的整数数组中的素数时遇到问题。我尝试使用'for'循环来遍历我的数组中的每个元素,以检查它是否是素数。虽然它从数组中打印出一些int,但它们不是素数。public static void main(String[] args) {         defineTable();         printPrimeNumbers();     }     private static int[] tab;     private static int[] defineTable(){         tab = new int[100];         for (int i = 0; i < tab.length; i++){             tab[i] = randomFill();         }         return tab;     }     private static int randomFill (){         Random rand = new Random();         int randomInt = rand.nextInt();         return randomInt;     }     private static void printPrimeNumbers(){         boolean isPrime = true;         for (int i = 0; i < tab.length; i++){             int num = tab[i];             for (int j = 2; j < num; j++){                 if (num % j == 0){                     isPrime = false;                     break;                 }             }             if(isPrime){                 System.out.println(num + " jest liczbą pierwszą.");             }         }     }解决这个问题的任何方法?我4天前开始独自学习Java。到目前为止一切顺利,我理解大部分基础知识。但这个问题对我来说似乎太复杂了,一个初学者。编辑:我将大部分代码的变量翻译成波兰语的英语,因为我的母语是波兰语,希望这是可以理解的。
查看完整描述

2 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

在编写Java代码时,尝试将任务拆分为函数(仅用于单个目的)。为了你的代码提取确定Prime的逻辑到一个单独的方法并传递随机数来检查它是否是素数,如果是,则打印否则不打印或什么也不做。

请检查以下代码段

一种更简单有效的方法来查找素数

public static boolean isPrime(int n) {  
           if (n <= 1) {  
               return false;  
           }  
           for (int i = 2; i <= Math.sqrt(n); i++) {  
               if (n % i == 0) {  
                   return false;  
               }  
           }  
           return true;  
       }  private static void printPrimeNumbers(){
        for (int i = 0; i < tab.length; i++){
        if(isPrime(tab[i])){ 
        System.out.println(tab[i] + " jest liczbą pierwszą.");
       } 

    }


查看完整回答
反对 回复 2019-05-15
?
慕斯709654

TA贡献1840条经验 获得超5个赞

你只设置isPrimetrue之初printPrimeNumbers。一旦找到第一个复合数字,它就变成了false,你再也不会把它true重新设置为测试下一个数字。


查看完整回答
反对 回复 2019-05-15
  • 2 回答
  • 0 关注
  • 525 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信