用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > sqlserver教程

在SQL Server 2005中实现素数计算

时间:2014-11-30  来源:互联网  作者:佚名

我将提出一个挑战,谁能用SQL(SQL Server培训 mySQL培训 )SEERVER提出计算素数最好的方法,我用了一个新的特点CTE和某些TSQL实现,但均不理想,前者(CTE)有限制,而后者(TSQL)产生一百万个素数用了7分种你可以干的更好么?这儿是我的一些代码段落

(T-SQL实现)

set nocount on

declare @prime table (prime int not null primary key)

--insert into @prime values (2)

--insert into @prime values (3)

--insert into @prime values (5)

--insert into @prime values (7)

--insert into @prime values (11)

declare @number int, @pc int

set @number = 13

set @pc = 1

while @pc < 1000000

begin

if not exists (select 1 from @prime where @number % prime = 0 and prime < sqrt(@number) )

begin

insert into @prime select @number

set @pc = @pc +1

end

set @number = @number

+ case when @number %2 = 1 then 2

when @number %3 = 2 then 2

when @number %5 = 4 then 2

when @number %7 = 6 then 2

when @number %11 = 10 then 2

else 1 end

end

select @pc

和(CTE实现)

with seq

as( select 13 number

union all

select s.number

+ case when s.number %2 = 1 then 2

when s.number %3 = 2 then 2

when s.number %5 = 4 then 2

when s.number %7 = 6 then 2

when s.number %11 = 10 then 2

else 1 end

from seq s

where number < 32767

)

, prime as (

select s.number

from seq s

where not exists ( select 1 from seq s2 where s2.number < s.number and (s.number) % s2.number = 0)

)

select *

from prime

option (MAXRECURSION 32767)

来顶一下
返回首页
返回首页
推荐资讯
从零开始学ASP.NET-基础篇第1/7页 从零开始学ASP.NET-基础篇第1/7页第一天 学习目的: 掌握最基本的Label、TextBox、Button控件
ASP.NET入门数据篇 ASP.NET入门数据篇对于网站编程的初学者来说,总是会上网找些源码来看,但久而
相关文章
栏目更新
栏目热门