當前位置:首頁 » 編程語言 » sql怎麼計算質數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql怎麼計算質數

發布時間: 2022-12-18 18:03:46

1. sql /ACCESS 素數個數的求法

mn取最大,i>mn mn=i就是把最新的i值賦給i,依次遞推,mn就是最大的素數值

2. 用一個SQL 2000 的存儲過程完成1~100內所有質數的和

不寫太多了,就把基本實現寫出來吧
ALTER
proc
[dbo].[testz]
as
declare
@i
int
declare
@j
int
declare
@sql
varchar(200)
drop
table
a
create
table
a
(ID
int,
Number
int)
select
@i=1
while
@i<=100--此處設置為100以內
begin
exec('insert
a(id,Number)
values('+@i+','+@i+')')
select
@i=@i+1
end
deallocate
rs
declare
rs
cursor
for
select
id,number
from
a
for
update
open
rs
fetch
next
from
rs
into
@i,@j
while
@@fetch_status=0
begin
if
@j!=1
and
@j!=0
begin
select
@sql='update
a
set
Number=0
where
Number%'+cast(@j
as
varchar)+'=0
and
Number!='+cast(@j
as
varchar)
exec(@sql)
end
fetch
next
from
rs
into
@i,@j
end
close
rs
select
*
from
a
where
number!=0
--返回設定值以內質數
select
sum(number)
from
a
--返回質數和

3. PL/SQL求a到b之間的質數

質數是除了一和它本身之外,不能被其他數整除的正整數
不知道plsql的語法 但是可以給你個思路 寫個for循環
給你個函數 mod(6,3) 返回值是 余數
判斷余數是否為0
然後看是不是能被除了 1和本身以外的數整除 希望對你有用

4. 用T_SQL怎樣編寫求從1到100內的質數並逐個輸出然後求和

declare @i int
declare @m int
declare @n int
declare @sum int --計算之和
--為了提高執行效率,可以從 5 開始,2和3單獨顯示
select 2 '質數'
select 3 '質數'
set @sum =5
set @i = 5
while @i < 100
begin
set @m = 2
set @n = 0 --標志變數
while @m < @i/2
begin
if @i % @m = 0
begin
set @n = 1
break --取余為零則非質數,退出循環
end
set @m = @m + 1
end
if @n = 0
begin
select @i '質數'
set @sum = @sum +@i
end
set @i = @i + 2 --因為從5開始,其餘質數均為奇數,加二提高效率

end

select @sum '質數之和'

5. 利用sql server求1-500之間的質數

--直接執行輸出
declare@iint,@jint,@rint
set@i=2
while@i<500
begin
set@j=1
set@r=1
while@j<@i
begin
if@i%@j=0and@i<>@jand@j<>1
begin
set@r=0
break
end
set@j=@j+1
end
if@r=1print@i
set@i=@i+1
end

---------------------------------------------------------------------------------
--1-500質數求和

declare@sumint--定義變數
declare@iint
declare@jint
declare@kint--定義一個開關
select@sum=2,@i=3
while@i<500--因為500不是質數所以判斷到小於500就OK了
begin
select@j=2,@k=0--任何數除以1還是其本身所以從2開始
while@j<=@i/2--判斷是不是質數
begin
if@i%@j=0
begin
select@k=1
break
end
select@j=@j+1
end
if@k=0
begin
select@sum=@sum+@i
end
select@i=@i+1
end
print@sum

6. SQLSever求100以內質數

declare @a int,@b int,@i int
set @i=1
while @i<100
begin
set @a=2
set @b=0
while @a<=@i/2
begin
if @i % @a=0
begin
set @b=1
break
end
set @a=@a+1
end
if @b=0 print @i
set @i=@i+1
end

7. 求助:在T-SQL中求100~200之間的素數

declare @i int
declare @j int
declare @k int

set @i=100
while(@i<200)
begin
set @k=2

set @j=sqrt(@i)
while(@k<=@j)
begin

if(@i%@k=0)
break
if(@j=@k)
print @i
set @k=@k+1
end
set @i=@i+1
end

8. 用SQL求100以內的素數

曾經在哪裡見到過(忘記了),保存了下來,剛剛測試了一下完全正確
貼出來供你參考吧,如下:
declare @a int,@b int,@i int
set @i=1
while @i<100
begin
set @a=2
set @b=0
while @a<=@i/2
begin
if @i % @a=0
begin
set @b=1
break
end
set @a=@a+1
end
if @b=0 print @i
end

9. 用SQL怎麼計算1-1000以內所有質數之和。

declare @num int --數值以內的質數和declare @sum int --質數和set @num = 1000 --100以內的指數和set @sum =0 --質數總和if @num % 2 =0 --如果是偶數轉為奇數進行運算 與下面的減2相對稱begin set @num = @num -1 --如果是偶數就變為奇數endwhile @num >= 3 --2比較特殊 2即是奇數又是偶數 begin declare @i int --變數 declare @sqltNum int --對循環的數值開根號得到的數 declare @val int --變數 替換@num set @i = 2 --設置變數值 set @val = @num --賦值 set @sqltNum =SQRT(@num) --對傳入的數字開根號 while @i<=@sqltNum begin if @num % @i = 0 begin set @val=0 break end else begin set @i+=1 continue end end set @sum = @sum+@val set @num = @num -2 --質數都是奇數 end select (@sum+2) --2比較特殊 2即是奇數又是偶數,+2是因為是從3開始計算的