求解N以内的质数问题
来源:互联网 发布:中日开战 知乎 编辑:程序博客网 时间:2024/06/10 23:17
问题与解法:
/*
* 求N以内的质数:除1和自身外都没有被整除的就是质数,1不是!
* 解法:
* 因为A*B=N,如果A》N的开根号,就可以先检查到B被N整出,可知,只需要N开根号判断就可以,减少判断量;注意用i*i<=N来检查;
* 在利用筛子存放1~N,先晒去2的倍数,再筛去3的倍数….如此进行下去剩下的就是质数了!
*/
可执行代码:
public class Prime {public static int[] findPrimes(final int max){ int[] prime = new int[max+1]; ArrayList<Integer> list = new ArrayList<>(); //将2-N设置为1 for(int i=2;i<=max;i++) prime[i]=1; //外层循环控制N前面的数,内层循环筛选去除! for(int i=2;i*i<=max;i++){ if(prime[i] == 1){ for(int j=2*i;j<=max;j++){ if(j%i==0) prime[j]=0; } } } //提取出来返回 for(int i = 2;i<=max;i++){ if(prime[i]==1) list.add(i); } int[] p = new int[list.size()]; Object[] objs = list.toArray(); for(int i=0;i<p.length;i++){ p[i] = ((Integer)objs[i]).intValue(); } return p;}public static void main(String[] args) { int []prime = Prime.findPrimes(100); for(int i:prime) System.out.print( i+" ");}}输出结果:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
阅读全文
0 0
- 求解N以内的质数问题
- 计算N以内质数的个数
- C++求N以内所有的质数
- 求一亿以内N的质数!筛选法
- Java求n以内的所有质数
- 求N个数以内的质数
- 求N以内所有质数的和
- 输出n以内的所有质数
- 质因数分解和N以内的质数
- 求N(包含N)以内的质数 (python)
- 筛法求N以内所有质数
- 用筛选法求N以内的质数
- 204. Count Primes_找n以内的质数_hash
- Switch Game<开灯问题>关于n以内的完全平方数个数求解
- 1000以内的质数
- 1.求解N以内素数
- 用筛选法求解n以内的所有素数
- 使用erlang求N以内质数
- java_验证哥德巴赫猜想
- 【树哈希】BZOJ4337 BJOI2015 树的同构
- 03 Java 运算符
- [线性代数]二次型
- spring事务详解
- 求解N以内的质数问题
- 设计模式之抽象工厂模式
- 推荐系统--揭开推荐的神秘面纱
- 常见排序算法之JavaScript实现
- 1.5 连接
- recyclerView 嵌套水平recyclerview,水平recyclerview滑动时,禁止垂直recyclerview滑动
- ConfigReader(三十三)—— ReadItemConfig
- JAVA中JSON和java对象之间的互转
- ZEMAX脚本语言1