思路:先去掉2的倍数,再去掉3的倍数,再去掉5的倍数,……依此类推,最后剩下的就是素数。
质数(又称素数),是指在大于1的自bai然数中,除了1和它本身外,不能被其他自然数整除(除0以外)的数称之为质数。
/*** 求n以内的所有素数* @param n 范围* @return n以内的素数*/private static List<Integer> getPrimes(int n){List<Integer> result = new ArrayList() ;result.add(2);for(int i=3;i<=n;i+=2){if(!divisible(i,result)){result.add(i);}}return result;}private static boolean divisible(int n, List<Integer> primes) {for(Integer prime : primes){if(n % prime == 0){return true; //整除,则返回真}if(prime >= Math.sqrt(n) ) //如果超过平方根还没有整除,则退出循环break;}return false;}
本文发布于:2024-02-05 03:02:16,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170722471162414.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |