#タイトル:品質係数の正の整数分解。入力90、90 = 3 * 2 * 3 * 5を印刷する:例えば。
#プログラム解析:N-分解品質係数は、次の手順が完了し、最も小さい素数kを見つけるべきである:
nと正確に等しいプライムは、プロセスの品質係数の分解が終了している場合#(1)は、プリントアウトそれはすることができます。
N <> K、Kが、N割り切れる場合(#2)は、商で割ったnのk及びkの値を印刷し、新しい正の整数として、N、最初のステップを繰り返すべきです。
#(3)においてnがKで割り切れない場合は、K + 1はkの値として使用され、最初のステップは、繰り返し実行されます。
方法:係数を使用して、リストのappendメソッドを追加します。
1 = INT(INPUT(NUM " 合成数を入力してください" )) 2 N- = NUM 3のList1 = [] 。4 。5 ための I における範囲(INT(N / 2)+ +1 ): 6 #Rangeオブジェクトのみが陽性であることができます整数、nは小数点可能/ 2 7 #サイクル:nの最大の要因自体(素数)、2の最小因子、 8 #最大サイクル数N / 2できるように、 図9 のために J でレンジ(2 、N-) : 10 IF NUM%のJの== 0: 11 list1.append(J) 12である NUM = NUM // J 13は BREAK 14 ''' 15 (N-2)の範囲内のjに対して: 16 #jが割り切れる場合jが割り切れる倍であるが、一度だけ記録されている場合、それは、Jの因子である 17。 NUMはj個の%をIF = 0 =: 18です list1.append(J) 。19 NUM = NUM J // 20が 続行 21がされて '' ' 22で のIFでlen(List1を)== 0: 23は、ある 印刷(" この数は素数で、再度入力してください別の番号。" ) 24 出口() 25 プリント(リスト1) 26が プリント(' %のD = '%のN-、エンド= '' ) 27 のための K中:範囲(LEN(LIST1)) 28 場合のみ==(LIST1)-1用: 29 プリント(" %sの"%のLIST1 [K]) 30 他: 31 プリント(" %S * "%のLIST1 [A] 、端= '' )
方法2:ファクタフォーマットを添加する方法を用いて、
1 DEF reduceNum(N): 2 プリント(' {} = ' .format(N)、終了= '' ) 3。 IF ませんでisinstance(nは、INT)又は N <= 0: 4 #でisinstanceは、データのN INTか否かを判断します;データ型 。5 プリント(' !正しい番号を入力してください' ) 。6 出口(0) 。7 ELIFの N- における [1 ]: 図8 プリント(' {} ' (N).formatは) 。9 、一方は、 N- ていない に[1 ]: 10 のための I における範囲(2、INT(N + 1 )): 11 であれば、n個の%I == 0: 12 N / A = iが 13 であれば、N == 1 : 14 プリント(I) 15 他: 16 印刷(' {} * ' .format(I)、終了= '' ) 17 休憩 18 19 #reduceNum(-90) 20 reduceNum(1)
ます。https://www.runoob.com/python/python-exercise-example14.html新人のチュートリアルを参照してください。