国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

在SQLSERVER2005中實現素數計算

2024-07-21 02:31:26
字體:
來源:轉載
供稿:網友

我將提出一個挑戰,誰能用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

   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)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 保靖县| 石河子市| 高阳县| 夹江县| 彭阳县| 洱源县| 长丰县| 金昌市| 宜川县| 象州县| 龙陵县| 车险| 温泉县| 同江市| 永泰县| 句容市| 阿拉善盟| 新巴尔虎右旗| 绥江县| 冀州市| 长寿区| 留坝县| 武穴市| 靖边县| 繁峙县| 云霄县| 疏勒县| 上杭县| 昌图县| 木兰县| 长葛市| 南丰县| 盈江县| 桃江县| 若尔盖县| 竹山县| 白河县| 鞍山市| 高碑店市| 寻乌县| 忻州市|