程序找到给定数组的任何序列的最大大小,其中每一对在 Python 中都很好
假设我们有一个大小为 n 的序列 nums。我们必须找到 nums 子序列的最大大小,其中每对 (p, q) 都是不错的对?当且仅当它至少满足以下条件之一时,才称 pait 为好对: 1. p 的不同素因数的奇偶性等于 b 的奇偶性。例如,值 18 有两个不同的素因数:2 和 3。 2. p 的所有正因数之和的奇偶性与 q 相同。
因此,如果输入类似于 nums = [2,3,6,8],则输出将为 3
示例
让我们看看以下实现以更好地理解 -
def solve(nums):n = len(nums)
cnt = []
total = []
result = []
for i in nums:
count = 0
tot = 0
prime = []
for j in nums:
if all(j % k for k in range(2, j)) == True:
prime.append(j)
for j in prime:
if i % j == 0:
count += 1
if count % 2:
cnt.append('odd')
else:
cnt.append('even')
for j in range(1,i+1):
if i % j == 0:
tot += j
if tot % 2:
total.append('odd')
else:
total.append('even')
for i in range(n-1):
for j in range(i+1, n):
if cnt[i] == cnt[j] or total[i] == total[j]:
result.append(nums[i])
if j == n-1:
result.append(nums[j])
result = list(set(result))
return len(result)
nums = [2,3,6,8]
print(solve(nums))
输入
15, 3, 8输出结果
3
以上是 程序找到给定数组的任何序列的最大大小,其中每一对在 Python 中都很好 的全部内容, 来源链接: utcz.com/z/363273.html