python を使った整数の因数計算プログラム

数学的理論と計算

整数の因数を計算するプログラムです。

因数ですが、ある数 a を他の整数 b で割り、余りが無ければ a は b の因数ということになります。

この記事はこんな人におすすめ。

  • Pythonで因数を割り出したい。
  • 整数の因数の見つけ方を知りたい。

プログラミング無料体験はこちら↓↓↓



まずは簡単に因数を見てみましょう。

因数を割り出すには「is_factor()」関数を使ってみましょう。

Sponsored Link

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
正の整数を入力してください。

なので、マイナスの値を入れることはできません。

というわけで、因数計算でした。

プログラミング無料体験はこちら↓↓↓


Sponsored Link

コメント

タイトルとURLをコピーしました