>  기사  >  백엔드 개발  >  在SQLSERVER2005中实现素数计算_PHP教程

在SQLSERVER2005中实现素数计算_PHP教程

WBOY
WBOY원래의
2016-07-13 17:00:37755검색

我将提出一个挑战,谁能用SQLSEERVER提出计算素数最好的方法,
我用了一个新的特点CTE和某些TSQL实现,但均不理想,前者(CTE)有限制,而后者(TSQL)产生一百万个素数用了7分种
你可以干的更好么?
这儿是我的一些代码段落
(TSQL实现)
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 begin
if not exists (select 1 from @prime where @number % prime = 0 and prime 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 = 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 = 10 then 2
else 1 end
from seq s
where number )
, prime as (
select s.number
from seq s
where not exists ( select 1 from seq s2 where s2.number )
select *
from prime
option (MAXRECURSION 32767)


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/631230.htmlTechArticle我将提出一个挑战,谁能用SQLSEERVER提出计算素数最好的方法, 我用了一个新的特点CTE和某些TSQL实现,但均不理想,前者(CTE)有限制,而...
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.