奇素数奇数模筛法源码

对于奇数2N+1为合数,则有2N+1=(2m+1)(2n+1)=4mn+2m+2n+1

所以有:N=2mn+m+n=n(2m+1)+m=m mod(2m+1)

筛除这类N值就是素数

aardio的代码如下

//3.素数的求法
function  isPrime(N){
	if(N<2){ 
		win.msgbox("素数判断函数只处理大于1的整数","素数判断函数说明",,)
		return null; 
		}
	if(N>2 && N%2==0) return 0; 
	var x=(N-1)/2
	var max=math.sqrt(x/2)
	for(m=1;max;1){
		if(x%(2*m+1)==m) return 0; 
	}
	return 1; 
}
//4、生成s到e之间的素数表 
function primetab(s,e){
  	var ptab={}
 	var m=1
	for(i=s;e;1){
		if(isPrime(i)){
			ptab[m]=i
			m++
			}
		}
	return ptab; 	
 }  

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值