亲和数 T-SQL代码
作者:互联网
亲和数:彼此约数的和等于对方。听说欧洲几千年没找出一对。
转载请注明出处,联系我: t39q@163.com
本人热衷于数据库技术及算法的研究,志同道合之士, 欢迎探讨
DECLARE @n INT=5,@i INT=1,@End INT=0;
WHILE @n<10000
BEGIN
SELECT @End=@n/2;
WHILE @i<=@End
BEGIN
IF @n%@i=0
BEGIN
INSERT INTO Divisor(n,Divisor) VALUES (@n,@i);
END
SET @i=@i+1;
END
SET @n=@n+1;
END
--上面的过程对每个自然数暴力拆约数,下面的SQL查询找出对应的亲和数
SELECT * FROM (
SELECT * FROM (
SELECT N,sum(d.Divisor) D
FROM Divisor d GROUP BY d.N
) t0
LEFT join
(SELECT N N1,sum(d.Divisor) D1
FROM Divisor d GROUP BY d.N
) t1 ON t0.D=t1.N1) tt0
WHERE tt0.N=tt0.D1 AND tt0.N<>tt0.D;
找了这些亲和数
标签:私信,约数,End,INT,代码,SQL,文章,亲和数 来源: https://blog.csdn.net/qq_34677276/article/details/104503022