在SQLSERVER2005中实现素数计算

brightbrightgo

brightbrightgo

2016-01-29 16:25

在SQLSERVER2005中实现素数计算,在SQLSERVER2005中实现素数计算
 

我将提出一个挑战,谁能用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 < 1000000
begin

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/sqlserver/)

   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)

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/sqlserver/) 
展开更多 50%)
分享

猜你喜欢

在SQLSERVER2005中实现素数计算

SQLServer
在SQLSERVER2005中实现素数计算

SQLServer2005中的SQLCMD工具使用

编程语言 网络编程
SQLServer2005中的SQLCMD工具使用

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

SQLServer2005 中的几个统计技巧

编程语言 网络编程
SQLServer2005 中的几个统计技巧

在VMWare中配置SQLServer2005集群 Step by Step(五) SQLServer集群安装

服务器
在VMWare中配置SQLServer2005集群 Step by Step(五) SQLServer集群安装

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

SQLServer2005 的查询独占模拟

编程语言 网络编程
SQLServer2005 的查询独占模拟

SQLServer2005 XML数据操作代码

编程语言 网络编程
SQLServer2005 XML数据操作代码

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

《家庭骑师》选单操作图文简介

《家庭骑师》选单操作图文简介

SQL Server编写存储过程小工具(二)

SQL Server编写存储过程小工具(二)
下拉加载更多内容 ↓