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

sql計算素數的個數

發布時間: 2022-09-05 02:52:38

⑴ 用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

⑵ 使用SQL編寫程序,輸出100以內所有的素數


05以後可以這樣寫

withtemp1(col1)as
(select1col1
unionall
selectcol1+2col1
fromtemp1
wherecol1+2<=100
)
selectsum(col1)fromtemp1;

沒測試,有問題你再追問吧,

***************************好吧,忘記素數是什麼了,,寫成了1,3,5,7這樣的和了,,,

selectsum(a.number)
frommaster..spt_valuesa
wherea.numberbetween2and100anda.type='p'
andnotexists(select*frommaster..spt_valuesb
whereb.numberbetween2and100andb.type='p'
anda.number>b.number
anda.number%b.number=0)



⑶ 用 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)

⑷ sql求2000~500內的素數的個數

selectcount(A.number)frommaster..spt_valuesA
wheretype='p'andnumberbetween200and500
andnotexists(select1frommaster..spt_valuesB
whereB.type='p'
andB.numberbetween2andsqrt(A.number)
andA.number%B.number=0
)

⑸ SQL /ACCESS 素數個數的求法

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

⑹ 用SQL語句編寫程序:求2~50內的素數

declare @a int,@b int,@i int
set @i=2
while @i<50
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 --@b
set @i=@i+1
end