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

sql编程最大公因数

发布时间: 2023-02-01 21:57:45

❶ 用T-SQL流程控制语句编写程序,求两个数的最大公约数和最小公倍数

因为你的代码中,@c的最后值一直 是2,也就是说,goto label1 会一直执行下去
下面这段代码能够实现你的需求

DECLARE @a int,@b int,@c int,@d int,@gongyueshu int,@gongbeishu int
set @a=18
set @b=6
if(@a = 0 or @b = 0)
begin
set @gongyueshu = 0
set @gongbeishu = 0
end
else
begin
declare @atemp int ,@btemp int
set @atemp = @a
set @btemp = @b
set @gongyueshu = 1
if(@a > @b)
set @c = @b
else
set @c = @a
if @c = 1
begin
set @gongbeishu = @a * @b
end
else
begin
set @d = 2
lable1:
if @d > @c or @d > @a or @d > @b
goto lable2
if @a % @d = 0 and @b % @d = 0
begin
set @a = @a / @d
set @b = @b / @d
set @gongyueshu = @gongyueshu * @d
goto lable1
end
else
begin
set @d = @d +1
goto lable1
end

lable2:set @gongbeishu=@atemp*@btemp/@gongyueshu

select '最大公约数是:' + cast(@gongyueshu as varchar(10))
select '最小公倍数是:' + cast(@gongbeishu as varchar(10))
end
end

❷ 编写PL/SQL实现求最大公约数和最小公倍数

create or replace FUNCTION GETGYS2(NUM1 NUMBER, NUM2 NUMBER) RETURN NUMBER IS
RESULTNUM NUMBER;
NUM3 NUMBER;
MINNUM NUMBER;
BEGIN
IF NUM1 >= NUM2 THEN
MINNUM := NUM2;
ELSE
MINNUM := NUM1;
END IF;
NUM3 := MINNUM;
LOOP
IF (MOD(NUM1, NUM3) = 0 AND MOD(NUM2, NUM3) = 0) THEN
RESULTNUM := NUM3;
EXIT;
END IF;
NUM3 := NUM3 - 1;
END LOOP;
RETURN(RESULTNUM);
dbms_output.put_line('最大公约数='||RESULTNUM);
dbms_output.put_line('最小公倍数='||num1/RESULTNUM*num3);
END GETGYS2;