A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Smilexs

中级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© Smilexs 中级黑马   /  2015-9-26 11:51  /  482 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Smilexs 于 2015-9-26 11:55 编辑

不了解筛选法,还请自行百度,通过筛选法可以比较快速求得素数,也没什么高深的技术,分享一下,不多说,直接上代码伺候!如果对你有帮助,还请点个赞,新人报道
  1. /**
  2.          * 功能:筛选法求素数(主要是素数倍数的数,肯定不是素数)
  3.          * @author Smilexs
  4.          * @param severalPrime 第几个素数
  5.          */
  6.         public void getPrime(int severalPrime){
  7.                 if(severalPrime<=0||severalPrime==1){
  8.                         System.out.println("第1个素数是:2");
  9.                         return;
  10.                 }
  11.                 int [] a =new int[severalPrime];//存放素数 的 数组
  12.                 int index=0;//数组下标
  13.                 a[index]=2;//第一个素数=2
  14.                
  15.                 for(int n=3;;n++){
  16.                         boolean flag=true;//标记是否是 素数,每次循环假定是 素数
  17.                         /*
  18.                          * 关键:
  19.                          * 数组中遍历,n是否是数组里面某个数的倍数
  20.                          * Math.sqrt(index) 大大大的提高了 运算速度
  21.                          */
  22.                         for(int j=0;j<=Math.sqrt(index);j++){
  23.                                 if(n%a[j]==0){
  24.                                         flag=false;//不是素数,直接下一轮
  25.                                         break;
  26.                                 }
  27.                         }
  28.                        
  29.                         if(flag){
  30.                                 index++;
  31.                                 a[index]=n;//是素数 存放数组里
  32.                         }
  33.                         if(index==severalPrime-1)break;
  34.                 }
  35.                 System.out.println("第"+severalPrime+"个素数是:"+a[severalPrime-1]);
  36.         }
复制代码






4 个回复

倒序浏览
学习了。。。。。。。。。。。。。
回复 使用道具 举报
学习学习。
回复 使用道具 举报
学学习习
回复 使用道具 举报
楼夜雪 来自手机 中级黑马 2015-9-26 17:19:38
报纸
学习学学习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马