問題は次のとおりです。のpython - 次のように共通の要素を共有しない戻り番号は
2つの入力、数
n
とリストlst
を取る関数を作成します。 この関数はlst
にある のすべての数値のリストを返します。n
(1以外)に共通の要素はありません。がdef no_common_factors (n, lst): def uf(n): #get a set of factors factors = [] i = 2 while n > 1: if n % i == 0: factors += [i] n = n/i else: i += 1 return set(factors) factors_n = uf(n) no_common = [] for i in range(0, len(lst)): factors_i = uf(i) if factors_n.isdisjoint(factors_i): no_common += [lst[i]] else: continue return no_common
が動作しない nと、
lst
内のすべての数値は0
私の試みに正の整数が以上になります。
In [41]: no_common_factors(15, [72,27,32,61,77,11,40])
Out[41]: [72, 27, 32, 77]
それは返すべきです[ 32,61,77,11]。
私はそれを見つめているが、私が間違っていることを見ることができない、それは本当に簡単だと思われる。助けてください!
実際の数値ではなく、反復変数「i」の要素をチェックしています。 'uf(lst [i])'を実行するか、lstのxの数値自体をよりよく反復する: ' – Felk
関数内に関数を持つのは共通のことですか?私には奇妙に見えます。 – offeltoffel
@Felk、ありがとう! –