Java求素数例子——郑州尚学堂
Java求素数例子——郑州尚学堂
郑州尚学堂 发表于4个月前
Java求素数例子——郑州尚学堂
  • 发表于 4个月前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 0


素数(质数)指的是不能被分解的数,除了 1 和它本身之外就没有其它数能够整除。

 

这里是一个小例子,说明如何求取十万以内的所有素数。


 
素数的分布没有规律可言,所以要检验一个数是不是素数,就必须将它同所有小于它的数作除法。

不过有一个简便的方法,就是不需要检验所有小于它的数,而只要检验所有小于它的素数。

如果所有小于它的素数都不能将其整除,那么它就是素数。

 

public class Primes { 
  
  public static void main(String[] args) { 
    // 求素数 
    List<Integer> primes = getPrimes(100000); 
  
    // 输出结果 
    for (int i = 0; i < primes.size(); i++) { 
      Integer prime = primes.get(i); 
      System.out.printf("%8d", prime); 
      if (i % 10 == 9) { 
        System.out.println(); 
      } 
    } 
  } 
  
  /** 
   * 求 n 以内的所有素数 
   * 
   * @param n 范围 
   * 
   * @return n 以内的所有素数 
   */ 
  private static List<Integer> getPrimes(int n) { 
    List<Integer> result = new ArrayList<Integer>(); 
    result.add(2); 
 
    for (int i = 3; i <= n; i += 2) { 
      if (!divisible(i, result)) { 
        result.add(i); 
      } 
    } 
  
    return result; 
  } 
  
  /** 
   * 判断 n 是否能被整除 
   * 
   * @param n   要判断的数字 
   * @param primes 包含素数的列表 
   * 
   * @return 如果 n 能被 primes 中任何一个整除,则返回 true。 
   */ 
  private static boolean divisible(int n, List<Integer> primes) { 
    for (Integer prime : primes) { 
      if (n % prime == 0) { 
        return true; 
      } 
    } 
    return false; 
  } 
}

 

 

6.20-7.12报名Java课程即可优惠2000元, 送Java视频

 

郑州尚学堂7月开班时间公告

 

Java培训脱产班开课时间:2017年07月12日 抢座中..

Android培训脱产班开课时间:2017年07月12日 抢座中..

 

编程学习问题和资料+QQ:3500819260

 

地址:河南省郑州市金水区文化路硅谷广场B座9楼011A-018号

标签: Java素数
共有 人打赏支持
粉丝 0
博文 68
码字总数 46935
×
郑州尚学堂
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: