来用SQL语句算最大公约数了 分不多 就100...!
请用SQL语句求下列两个数的最大公约数:::
4294967294 3465465468
[解决办法]
- SQL code
/*求两个数的最大公约数*/create function GetGys(@num1 int,@num2 int)returns int --返回值asbegindeclare @times int --计数器declare @min int --存储两个数的较小者declare @result int --保存结果if(@num1>=@num2)set @min=@num2elseset @min=@num1set @times=@minwhile(@times<=@min) --循环beginif(@num1%@times=0 and @num2%@times=0)beginset @result=@timesbreakendset @times=@times-1endreturn @resultend/*求两个数的最小公倍数*/create function GetGbs(@num1 int,@num2 int)returns intasbegindeclare @result int --结果declare @max int --保存两个数的大者declare @times intif @num1<=@num2set @max=@num2elseset @max=@num1set @times=@maxwhile(@times>=@max)beginif(@times%@num1=0 and @times%@num2=0)beginset @result=@timesbreakendset @times=@times+1endreturn @resultend 最后测试:运行select dbo.GetGys(15,20) as 最大公约数,dbo.GetGbs(15,20) as 最小公倍数显示结果:最大公约数 最小公倍数 5 60赞同23| 评论
[解决办法]
- SQL code
GOCreate FUNCTION fn_num(@a BIGINT,@b BIGINT)RETURNS BIGINTASBEGIN DECLARE @c BIGINT SET @c=@a%@b WHILE @c>0 select @a=@b,@b=@c,@c=@a%@b RETURN @bENDGOSELECT dbo.fn_num(4294967294,3465465468)