整数の因数を計算するプログラムです。
因数ですが、ある数 a を他の整数 b で割り、余りが無ければ a は b の因数ということになります。
この記事はこんな人におすすめ。
- Pythonで因数を割り出したい。
- 整数の因数の見つけ方を知りたい。
プログラミング無料体験はこちら↓↓↓
まずは簡単に因数を見てみましょう。
因数を割り出すには「is_factor()」関数を使ってみましょう。
is_factorを使った因数の割り出し
記述は以下。
def is_factor(a, b): if b % a ==0: return True else: return False is_factor(3, 1602) True
gawergr is_factor()関数で、bをaで割った際に割り切れれば「True」で返す。
割り切れなければ、「False」で返すというものです。
3は1602の因数かという問いに「True」で返しているので、3は1602の因数です。
次にrange()関数の使い方は以下の通り。
for i in range(1, 4): print(i) 1 2 3
forを使うことで、1から3までを順番に表示させることができます。
range()関数のカッコ内は (1, 4)となっていますが、表示されるのは1から一つ手前の3までになります。
ちなみに最初の数を指定しない場合、以下のような結果になります。
for i in range (5): print (i) 0 1 2 3 4
0から4までを順番に出力するだけですね。
範囲を区切って、しかも指定した数刻みで出力することも可能です。
例えば以下のような場合。
for i in range(1, 30, 2): print(i) 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29
1から29までを、二つ刻みで出力するよう指定しました。
プログラミング用語を使うと、整数の差分は増分値(step value)といわれ、通常では1ですがrange()関数を使って増分値を2にしてして出力しました。
整数の因数を見つけるプログラム
以下は整数の因数を見つけるプログラムです。
factor()関数を使って整数の因数を見つけますが、手順は因数 a を定義しrange()関数で1から、a+1を定義。
a で割り切れる数字を表示する、というものです。
''' 整数の因数を見つける。 ''' def factors(a): for i in range (1, a+1): if a % i == 0: print(i) if __name__=='__main__': a = input('数字を入力してください: ') a = float(a) if a > 0 and a.is_integer(): factors(int(a)) else: print('正の整数を入力してください') 数字を入力してください: 1692 1 2 3 4 6 9 12 18 36 47 94 141 188 282 423 564 846 1692
とりあえず正の整数1692を入力すると、因数が全て見つかりました。
ちなみにですが、マイナスの値を入力すると「正の整数を入力してください」といわれます。
def factors(b): for i in range (1, b+1): if b % i == 0: print(i) if __name__=='__main__': b=input('数字を入力してください: ') b=float(b) if b> 0 and b.is_integer(): factors(int(b)) else: print('正の整数を入力してください。') 数字を入力してください: -150 正の整数を入力してください。
なので、マイナスの値を入れることはできません。
というわけで、因数計算でした。
コメント