KNIMEとか倉庫

KNIMEやEXCELなどの備忘録です。

【Python】約数を求めてみたい。

・お題:引数の約数をリスト形式で出力する関数を作成したい。

 

・今回もリスト内包表記を使ってみた。

・順を追って考えていく。

①[n for n in range(12)]と入力すると、[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]と返ってくる。rangeをちょっとずらしつつ、この中から12の約数だけ引っ張ってきたい。

②[n for n in range(1,12+1) if n % 3]と入力すると、[1, 2, 4, 5, 7, 8, 10, 11]と返ってきた。3で割り切れる数だけ消えた。if notにすれば、3の倍数だけのリストを作れるんじゃないか?

③[n for n in range(1,12+1) if not n % 3]と入力すると、[3, 6, 9, 12]と返ってきた。少し弄れば目的のものができそう。

④お題の解決策

def Yakusu(n):
    return [m for m in range(1,n+1) if not n % m]

を実行した後に、

Yakusu(12)

と入力すると、

[1, 2, 3, 4, 6, 12]

が返ってきた。

一応、目的の関数が作成できたっぽい。

 

おわり。