黑马程序员技术交流社区
标题:
高效求素数。不知还有没有更高效的?
[打印本页]
作者:
夜写意
时间:
2015-7-13 01:10
标题:
高效求素数。不知还有没有更高效的?
本帖最后由 夜写意 于 2015-7-13 01:19 编辑
自己写的,只把最核心的代码写出来,其他的没写。还有没有更高效的,求分享!!!!这个是用于求1~n的之间的素数。数组长度可以定为n/2 或更短,这个我没去仔细思考过
循环调用此方法。 如果是要找X~Y之间的素数还需要把1~X之间的素数先找出来。其他不过多做解释
//定义一个方法,接收一个数组和需要判断的数字
//如果此数是素数,把他加到数组里。
static int[] getNums(int[] nums,int num){
if(nums[0] == 0){
nums[0] = 2;
}
/**/
int count = 1;
for(int i=0; i<nums.length; i++){
if(count == 0 || num == 1){
break;
}else if(nums[i] != 0){
count = (num % nums[i]);
}else{
nums[i] = num;
break;
}
}
return nums;
}
复制代码
作者:
Claw
时间:
2015-7-13 10:10
我只知道如果追求步骤最简的话是可以将长度缩减到n的平方根。
math.sqrt(double n);
作者:
825176857
时间:
2015-7-13 10:35
学习学习!
作者:
as604049322
时间:
2015-7-13 12:18
这个初级求素数的方法初级都没达到啊,,谈不上高效
作者:
as604049322
时间:
2015-7-13 12:20
java在三秒内筛出1亿范围内的素数,能力有限无法继续优化
http://bbs.itheima.com/thread-197292-1-1.html
(出处: 黑马程序员IT技术论坛)
给个中级的看看吧,不过时间久了,我自己都看不太懂了
作者:
炎舞霜冬
时间:
2015-7-13 21:38
虽然看不懂.但是顶了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2