与えられた数の固有の素因数を返すコードを作成しました。ここにそのコードがあります。このコードでは、1が一意の素数であるとはみなされません。 factorial3
は、与えられた数に対して階乗のリストを返す関数です。条件に基づいて要素に値を追加する補完をリストします
リストcount
は、入力された数字の固有の素数を私に与えます。
たとえば、2の10,20の場合、要因は[2,5,10]と[2,5,10,20]です。しかし、固有の素因数はそれぞれ[2,5]と[2,5]である。したがって、数は[2,2]
私はリスト内包と同じ達成しようとしていますが、これまでに失敗しました。これまで私が試したことです。
c=[0 for i in numbers]
new=[i+1 for i,k in enumerate(numbers) for j in factorial3(k) if factorial3(j)==[1,j]]
print new
new1=[c[i]+1 for i,k in enumerate(numbers) for j in factorial3(k) if factorial3(j)==[1,j]]
print new1
私はほとんどそこにありますが、1つのことが欠落しているだけで、繰り返しは1回だけ削減されます。
副作用としてリスト内包表記を使用しないでください。あなたが実際に作成したリストを*使用していないので、それは非常に無駄です。 –
@MartijnPieters、私はちょうど知識の目的のためにリスト内包を行う方法を知りたい。私は実際の状況でそれらを使用していません。 –