• Java求素数的算法


      java求素数的算法由广州疯狂软件java培训分享:

      只能被1和它自己本身所整除的数成为素数或质数,以下为三种求N以内素数的算法。

      一、从1至N全部遍历,当这个数只能被1和n整除它就是素数。

      /**

      * 打印自然数n以内的素数

      */

      public void printPrime(int n){

      //是否为质数

      boolean isPrime;

      for (int i = 1; i <= n; i++) {

      isPrime = true;

      for (int j = 2; j < i; j++) {

      //若能除尽,则不为质数

      if ((i % j) == 0) {

      isPrime = false;

      break;

      }

      }

      //如果是质数,则打印

      if (isPrime) {

      System.out.println(i);

      }

      }

      }

      二、筛数法求素数

      筛数法求素数的基本思想是:把从1开始的、某一范围内的正整数从小到大顺序排列, 1不是素数,首先把它筛掉。剩下的数中选择最小的数是素数,然后去掉它的倍数。依次类推,直到筛子为空时结束。

      public void printPrimes(int n){

      //定义arr数组来表示筛选出来的素数

      boolean arr[] = new boolean[n];

      //arr数组坐标i不是素数的话就令arr[i]=false

      for(int k=2;k<N;K++){< p>

      if(!arr[k]){

      for(int i=2*k;i< p>

      arr[i] =false;

      }

      }

      }

      //把求的素数放入数组a中。

      for(int i=1;i<N;I++){< p>

      if(arr[i]){

      System.out.println(i);

      }

      }

      }

      三、6N±1法求素数

      任何一个自然数,总可以表示成为如下的形式之一:

      6N,6N+1,6N+2,6N+3,6N+4,6N+5 (N=0,1,2,…)

      显然,当N≥1时,6N,6N+2,6N+3,6N+4都不是素数,只有形如6N+1和6N+5的自然数有可能是素数。所以,除了2和3之外,所有的素数都可以表示成6N±1的形式(N为自然数)。

      根据上述分析,我们只对形如6 N±1的自然数进行筛选,这样就可以大大减少筛选的次数,从而进一步提高程序的运行效率和速度。

      以下代码需要自然数大于10 。

      public int[] getPrimes(int n){

      int []a = new int[200];

      int k=0;

      int num = 5;

      a[0]=1;a[1]=2;a[2]=3;a[3]=5;a[4]=7;

      for(int i=3;i< p>

      for(int j=0;j<2;j++){

      k = 2*(i+j)-1;

      if((k<n)&&k%5==0?false:k%7==0?false:true){< p>

      a[num] = k;

      num++;

      }

      }

      }

      return a;

      }

      疯狂软件教育中心紧扣IT前沿技术的脉搏,高瞻远瞩立于潮头,引领行业标杆,开创IT教育培训的新天地,被称为新式IT教育的“黄埔军校”。疯狂软件教育中心主要面向大学生和准大学生的长期就业培训、企业员工定制内训、在职工程师的短期高端培训以及企业级应用的产品研发,其专业服务和质量承诺在客户中赢得广泛的声誉。

      疯狂软件教育中心结合自身特色,打破固有思维模式,以突出实战性,系统性,学识转换相结合的理念体系指引下,注重如何将培训内容真正转化为实操经验,以此促进工作能力的达成。在疯狂软件学院,学员通过参与企业实际项目开发,学以致用,获得实际项目经验。凭借自身强悍的师资、一流的课程、真实的项目、超高的就业率已经让广大南方学子成功走上软件工程师职业道路,大量毕业即失业的学子已通过疯狂软件教育中心实现了就业。

  • 相关阅读:
    python thrift
    redis 知识点
    Spring其他注解和xml配置(不常用的)
    Spring常用的的注解以及对应xml配置详解
    Eureka的工作原理简介
    SpringBoot的自动配置实现和介绍
    SpringBoot多配置文件,切换环境
    数据卷介绍和常用的服务部署
    Spring Security简介
    在Java中入门,读取和创建Excel,Apache POI的使用
  • 原文地址:https://www.cnblogs.com/gojava/p/3664035.html
Copyright © 2020-2023  润新知