在getTotalX函数中发现错误。python
最近,我在一次采访中被问到以下问题,该采访将通过python编程: 第一个数组的元素是所考虑整数的所有因子 所考虑的整数是第二个数组中所有元素的一个因子 这些数字被称为介于两个数组之间。您必须确定存在多少这样的数字 输入格式 第一行包含两个空格分隔的整数,分别描述n(数组a中的元素数)和m(数组b中的元素数)的值。 第二行包含n个不同的空间分隔整数,描述a0、a1、。。。an-1。 第三行包含m个不同的空间分隔整数,描述b0、b1、。。。bn-1 约束条件在getTotalX函数中发现错误。python,python,Python,最近,我在一次采访中被问到以下问题,该采访将通过python编程: 第一个数组的元素是所考虑整数的所有因子 所考虑的整数是第二个数组中所有元素的一个因子 这些数字被称为介于两个数组之间。您必须确定存在多少这样的数字 输入格式 第一行包含两个空格分隔的整数,分别描述n(数组a中的元素数)和m(数组b中的元素数)的值。 第二行包含n个不同的空间分隔整数,描述a0、a1、。。。an-1。 第三行包含m个不同的空间分隔整数,描述b0、b1、。。。bn-1 约束条件 n、 m在1,10范围内 ai在11
- n、 m在1,10范围内
- ai在1100范围内
- bi在1100范围内
2 3
2 4
16 32 96
样本输出:
3
说明:
- 2和4平均分为4、8、12和16李>
- 4、8和16等分为16、32、96
然而,我的解决方案似乎不正确,但没有告诉我原因。正在寻找识别错误的帮助。根据您的问题,让我们介绍被视为“X”的整数
- 列表“a”中的所有项目都是“X”的因子
- “X”是列表“b”中所有项目的系数
n,m=raw_input().split()
a = map(int,raw_input().split())
b = map(int,raw_input().split())
#Find factors for the list b items and store in (dictionary)dct
dct={}
for i in b:
dct[i]=[]
for i in range (0,int(m)):
for j in range(1,int(b[i])+1):
if int(b[i])%j==0:
dct[(b[i])].append(j)
#Find all factor values which are common for all key items.
selct = None
for k,v in dct.items():
if selct == None:
selct = set( v )
else:
selct = selct.intersection( set(v) )
select1 = list( selct )
#The 'select1' contains all the common factors.
#[8, 1, 2, 4, 16]
#These are the possible values for 'X'.
#Then again find all the factor values for select list items.
dct2={}
for i in select1:
dct2[i]=[]
for i in range (0,len(select1)):
for j in range(1,int(select1[i])+1):
if int(select1[i])%j==0:
dct2[(select1[i])].append(j)
#{8: [1, 2, 4, 8], 1: [1], 2: [1, 2], 4: [1, 2, 4], 16: [1, 2, 4, 8, 16]}
#If the values of list a is a subset of values of dct2,
#the key value is a matching value for 'X'.
final=[]
for k,v in dct2.items():
if(set(a).issubset(v)):
final.append(k)
print len(final)
很难在看不到的情况下说出代码的错误!我已将代码附加为图像。由于格式问题,它不允许我按原样上传代码