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

sql怎麼算質數

發布時間: 2023-05-28 06:32:51

『壹』 如何用sql求1-100的素數

declare @input int
set @input = 100 -- 求100以內的素數
select A.number from master..spt_values A
where type='p' and number between 2 and @input
and not exists(select 1 from master..spt_values B
where B.type='p'
and B.number between 2 and sqrt(A.number)
and A.number % B.number =0
)
order by A.number

『貳』 用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

『叄』 用SQL判斷1050是否是素數

setserveroutputon
DECLARE
BEGIN
FORiIN2..1049
LOOP
IFmod(1050,i)=0THEN
dbms_output.put_line(1050||'不是素數');
return;
ENDIF;
ENDLOOP;
dbms_output.put_line(1050||'是素數');
END;

『肆』 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

『伍』 利用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

『陸』 用T-sQL語句求出1到100的素數

declare @num int,@flag int,@i int
set @num=1
while @num<=100
begin
set @flag=1 --flag=1 素數,flag=0 非素數
set @i=2
while @i<@num
begin
if @num%@i=0
begin
set @flag=0
break
end
set @i=@i+1
end
if @flag=1 and @num >2 --去掉1,2
print @num
set @num=@num+1
end

『柒』 用 oracle中PL/SQL演算法 求100內的素數

本過程輸入參數inp,計算1到inp之間的素數

演算法:
拿出1-inp之間森衫的每個數i,用2到i的平方根之間的每個數去數拿除,全部除不盡的即為素數,有一個能除盡的為非素數此畢腔

set serverout on
create or replace procere is_prime(inp number)
as
i number;
j number;
is_prim boolean;
begin
dbms_output.new_line;
dbms_output.put(to_char(2)||' ');
for i in 3..inp loop
begin
is_prim:=true;
for j in 2..trunc(sqrt(i)) loop
if mod(i,j)=0 then
begin
is_prim:=false;
exit;
end;
end if;
end loop;
if is_prim then dbms_output.put(to_char(i)||' '); end if;
end;
end loop;
dbms_output.new_line;
end;
/

exec is_prime(100)

『捌』 用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 '質數之和'