整数の因数を計算するプログラムです。
因数ですが、ある数 a を他の整数 b で割り、余りが無ければ a は b の因数ということになります。
まずは簡単に因数を見てみましょう。
因数を割り出すには「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
正の整数を入力してください。
なので、マイナスの値を入れることはできません。
というわけで、因数計算でした。
関連記事↓↓↓


コメント