我的一个朋友取从1到n的所有数字的序列(其中n>0)。
在这个序列中,他选择了两个数字,a和b。
他说a和b的乘积应该等于序列中所有数字的和,不包括a和b。
给定一个数字n,你能告诉我他从序列中排除的数字吗?
该函数接受参数:n(n始终严格大于0),
并返回一个数组或字符串(取决于语言),格式为:[(a,b),…]
将按“a”的递增顺序排序。碰巧有几种可能的(a,b)?
如果找不到可能的数字,函数将返回一个空数组(或空字符串),
这将证明我的朋友没有说实话!
题如上,代码没错但是限制了时间,有些值会超时,请问怎么改
def remov_nb(n):
res = []
l = [x for x in range(1, n + 1)]
s = sum(l)
for i in l:
for j in l:
if i * j == s - i - j:
res.append((i,j))
break
return res
print(remov_nb(26))