数据库
首页 > 数据库> > 亲和数 T-SQL代码

亲和数 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;

找了这些亲和数
在这里插入图片描述

qq_34677276 发布了2 篇原创文章 · 获赞 0 · 访问量 20 私信 关注

标签:私信,约数,End,INT,代码,SQL,文章,亲和数
来源: https://blog.csdn.net/qq_34677276/article/details/104503022