CHUAN2 DEV ENGINE
996 正版授权研发中心 · 360 授权合作教学中心 · 抖音传奇直播合作授权 · 快手推广运营商授权
OFFICIAL LICENSED ACADEMY 查验官方授权证书 →
// 威海旷世互娱教学基地 · 技术文章
进阶实战语法算法996引擎

Lua亲密数:真因子和的互惠配对

2026-09-27 01:15 作者:996 技术组 996引擎Lua教程传奇脚本进阶实战语法算法996引擎

【语法】
一、隐蔽陷阱
找亲和数对时只验了 220 的真因子和等于 284,忘了回验 284 的真因子和是否回到 220,单边相等的假对混进结果表,越攒越乱。
二、底层原理
亲密数是互为对方真因子和的一对数:220 的真因子和为 284,284 的真因子和为 220,一来一回才成立。真因子和等于全部约数和扣除自身,枚举到平方根成对收集即可,规模一次缩减一半。
三、正确代码
基础写法(真因子和,平方根成对收集):

lua
local function aliquot(n)
    local s, i = 1, 2
    while i * i <= n do
        if n % i == 0 then
            s = s + i
            if i ~= n / i then
                s = s + math.floor(n / i)
            end
        end
        i = i + 1
    end
    return s
end

进阶写法(配对回验):

lua
local function isAmicable(a)
    local b = aliquot(a)
    return b ~= a and aliquot(b) == a
end
local p = getplayerbyname("pair01")
sendmsg(p, 1, "220 与 284 互惠:"
    .. tostring(isAmicable(220)))

四、引擎验证
isAmicable(220) 为 true;3000 以内再筛出 1184 与 1210 一对;单边相等的 30 被回验拦下。
五、FAQ
问:完数算亲密数吗?
答:不算,b 等于 a 的自影情形已被排除。
问:枚举到平方根为什么够?
答:约数成对出现,大因子由小因子顺手带出。

作者履历与出处

本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。

← 返回文章地图返回研学路径

最新技术文章 · 实战干货

LATEST ARTICLES

全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →

进阶实战游戏功能

耐久提醒:装备损耗的修理提示

【游戏】 一、规则机制 线上事故:玩家装备耐久打空才发现,战力拦腰砍半,打不动怪又投诉掉率。耐久提醒立双档:耐久低于三成弹黄…

2026-09-27 21:11 996 技术组
入门夯实语法算法

Lua矩阵转置:行列互换的原地交换

【语法】 一、机制原理 抛个坑:行列表格要变成列行,每格都搬一遍还新建了整张表——方形矩阵能不能原地换?转置沿对角线折返:只…

2026-09-27 21:11 996 技术组
进阶实战游戏功能

浏览足迹:最近看过的商品回看

【游戏】 一、规则机制 隐蔽的坑:"最近浏览"里同一件商品重复出现五六次,足迹成了复读机。浏览足迹立两条:每次查看先在足迹里…

2026-09-27 21:11 996 技术组
入门夯实语法算法

Lua分段统计:数值落桶的人数分布

【语法】 一、机制原理 一行代码拆解:local bucket = math.floor(v / width)。数值分布统计…

2026-09-27 21:11 996 技术组
高级技巧语法算法

Lua默认值代理:__index读缺省的配置对象

【语法】 一、机制原理 一行代码拆解:setmetatable(cfg, {__index = DEFAULTS})。配置对…

2026-09-27 21:11 996 技术组
进阶实战游戏功能

输出统计:战斗伤害的实时面板

【游戏】 一、规则机制 线上事故:结算时玩家追问"我到底打了多少",战斗中没有任何实时输出面板,事后对不上账。输出统计两步走…

2026-09-27 21:11 996 技术组