在getTotalX函数中发现错误。python

在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

最近,我在一次采访中被问到以下问题,该采访将通过python编程:

第一个数组的元素是所考虑整数的所有因子 所考虑的整数是第二个数组中所有元素的一个因子 这些数字被称为介于两个数组之间。您必须确定存在多少这样的数字

输入格式

第一行包含两个空格分隔的整数,分别描述n(数组a中的元素数)和m(数组b中的元素数)的值。 第二行包含n个不同的空间分隔整数,描述a0、a1、。。。an-1。 第三行包含m个不同的空间分隔整数,描述b0、b1、。。。bn-1

约束条件

  • n、 m在1,10范围内
  • ai在1100范围内
  • bi在1100范围内
输出格式

打印被认为介于a和b之间的整数数

样本输入:

2 3
2 4
16 32 96
样本输出:

3
说明:

  • 2和4平均分为4、8、12和16
  • 4、8和16等分为16、32、96
4、8和16是仅有的三个数字,其中A的每个元素都是系数,每个元素都是B的所有元素的系数

这是我编写的代码(我只需要完成函数“getTotalX”。剩余的代码已经存在):


然而,我的解决方案似乎不正确,但没有告诉我原因。正在寻找识别错误的帮助。

根据您的问题,让我们介绍被视为“X”的整数

  • 列表“a”中的所有项目都是“X”的因子
  • “X”是列表“b”中所有项目的系数
首先查找列表b中项目的所有因子,然后查找公共值。输出(项目n)将显示“X”的可能值

然后找出这些可能值的因素。如果列表“a”中的项目是可能值列表的因子值的子集,则将为最终列表选择可能值(项目n)。这些值为“X”值。我已提供我的代码作为示例答案

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)

很难在看不到的情况下说出代码的错误!我已将代码附加为图像。由于格式问题,它不允许我按原样上传代码