当前位置:首页 » 编程语言 » sql求100以内素数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql求100以内素数

发布时间: 2023-01-20 12:31:13

㈠ 用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 Server语句输出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)

㈣ 求助:在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

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

㈥ 用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 '质数之和'

㈦ 如何用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以内所有的素数


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)



㈨ 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输出100-200之间的全部素数

#include "stdio.h"
#include "math.h"
void main()
{
int m,i,k;
printf("100-200之间的全部素数为:\n");
for(m=100;m<=200;m++)
{
k=(int)sqrt(m); /*强制转换*/
for(i=2;i<=k;i++)
if(m%i==0) break;
if(i>=k+1) printf("%d ",m);
}
printf("\n");
}