私はプログラミングに慣れていないし、if文を使ってforループ、nested forループを学習しようとしています。Python 3.5.1で整数のすべての因数分解を出力するには
iは整数n
の全てfactorisationsを生成するために、このコードを書かれている:
n=int(input())
for i in range(0,n+1):
for j in range(0,i):
if i*j == n:
print(i,'times',j,'equals',n)
break
は今、N = 10、それは次の結果を生成する場合:
5回2 10
10に等しいです時間1は10に等しい
これはいくつかの問題です。まず、それは
1回10すなわち最初の因数分解を無視し、私はそれを言うべき、つまり
i
とj
が結果に交換することにしたい10
第二の問題点に等しいことである:
1回10は10と等しい
2回5が等しい1
10回1は1
ない
1回10 10
5回2に等しく、ここで10
第一の要因を発見した際に、ご希望の出力はそれに「5回2が10に等しい」はありません。何か特別な理由? – user2357112