给定一个正整数n,以任意顺序输出其所有反除数.
来自OEIS A006272:
反除数是指不把一个数字除以尽可能大的差额的数字。例如,20有反除数3,8和13。反除数的另一个名称是无偏的非除数。
换句话说,1 < m < n是n的一个反除数,如果两者都是
m是偶数和n % m == m/2,或者m是奇数,n % m等于(m-1)/2或(m+1)/2。值得注意的是,1不是任何数字的反除数,因为它不满足短语“不除数”。
适用标准的密码-高尔夫规则。以字节为单位的最短代码获胜。
1 -> []
2 -> []
3 -> [2]
4 -> [3]
5 -> [2, 3]
6 -> [4]
7 -> [2, 3, 5]
8 -> [3, 5]
9 -> [2, 6]
10 -> [3, 4, 7]
18 -> [4, 5, 7, 12]
20 -> [3, 8, 13]
234 -> [4, 7, 12, 36, 52, 67, 156]
325 -> [2, 3, 7, 10, 11, 21, 26, 31, 50, 59, 93, 130, 217]发布于 2022-08-10 01:14:06
https://codegolf.stackexchange.com/questions/250883
复制相似问题