5桁の10の倍数を2個乱数を用いて発生させ,それらの約数をすべて表示するとともに,両者の公約数を表示するプログラムを作成しましょう.
Student number: s236099Divisors of 87700: 1 2 4 5 10 20 25 50 100 877 1754 3508 4385 8770 17540 21925 43850 87700 Divisors of 94350: 1 2 3 5 6 10 15 17 25 30 34 37 50 51 74 75 85 102 111 150 170 185 222 255 370 425 510 555 629 850 925 1110 1258 1275 1850 1887 2550 2775 3145 3774 5550 6290 9435 15725 18870 31450 47175 94350 Common divisors: 1 2 5 10 25 50 |
公約数は小さい順に表示させてください.
解答用紙を使用する際には,学生番号と名前の記入も忘れないでください.さらに,解答用紙自体がPythonのプログラムとなっていますので,実行してエラーの無いことを確認してから提出してください. 指定の解答用紙を使用していない,実行時にエラーが出る,学生番号と名前が無い,というような答案は提出されても採点しません.注意してください. |
解答例
# ############################# # # プログラミング入門II 宿題 2024.5.22 # 学生番号: s236099 # 氏名: 松江 花子 # # ############################# import random print('Student number: s236099') print('') num1 = random.randint(1000, 9999) * 10 num2 = random.randint(1000, 9999) * 10 lst1 = [] lst2 = [] print(f'Divisors of {num1}: ', end = '') for i in range(1, num1 + 1): if num1 % i == 0: lst1.append(i) print(f'{i} ', end = '') else: print() print(f'Divisors of {num2}: ', end = '') for i in range(1, num2 + 1): if num2 % i == 0: lst2.append(i) print(f'{i} ', end = '') else: print() com = sorted(list(set(lst1) & set(lst2))) print('Common divisors: ', *com) print('\n------------------------\n') |