nを入力k ←(1) nが1でない間end図2.11:素因数分解のアルゴリズム図2.9:PADからPython言語のプログラムへの変換図2.10:3n+1問題のPythonプログラムwhile n ! = 1:n = 5if n%2 == 0:nが偶数nを表示print(n)n = n//2n ← n÷2else:n ← 3n+1n = 3*n+1処理の内容は段下げします。整数 nを入力して素因数分解するアルゴリズムを図2.11に示します。 n を2から順に割っていき、割り切れたら除数を表示、割り切れなくなったら次の除数を試します。 n が1になったら終わりです。たとえば、728 = 2 2 2 7 13(1)-(4)を埋めてPADを完成させ、Python言語のプログラムを作成して実行しなさい。 整数nを入力する命令は n=int(input('n='))です。3n+1 問題 nをセットnが1でない間素因数分解(2)n ←(3) kを表示k ←(4) 19Python言語によるプログラムへPAD表現をPython言語に変換してみましょう。図2.9に、それぞれの処理をPython言語ではどのように表現するかを記入しました。代入は = という記号を用います。繰り返しは while を用いて表現することができます。 ! = は「等しくない」という関係、== は「等しい」という関係を表します。 nが偶数かどうかは、 2で割り切れるかどうかによって判定することができます。場合分け if n%2 == 0: により、 nを 2 で割った余りが 0 であれば n ← n÷2 によってnを2で割った結果を記憶場所nに保存しています。この処理は n = n//2 と表現できます。この = は「等しい」と言う意味ではなく、右辺の値を計算して、その結果を n という名前の記憶場所に保存するという「代入」操作をあらわしていることに注意してください。 //は整数どうしの割り算を行う演算子です。乗算には*という演算子を用います。 print(n)は n の値を表示する命令です。Python言語のプログラムを入力・実行する方法例として、Google Colaboratory (Colab)を紹介します。(1)https://colab.research.google.com/ に接続。(2)右上のログインから Google アカウントでログイン。(3)「ノートブックを新規作成」をクリック。(4)「+コード」をクリックしてプログラムを入力する。(5)○▲ ボタンをクリックするか、CtrlキーとEnterキーを同時に押すとプログラムが解釈されて実行される。(6)間違いがあればプログラムを修正して再実行。(7)「ファイル」から「保存」を選んでnotebookを保存。3n+1問題のアルゴリズムをPython言語で記述したプログラムを図2.10に示します。繰り返し範囲や場合分けの練習問題:素因数分解n = 5while n ! = 1: if n % 2 == 0: n = n//2 else: n = 3*n+1 print(n)
元のページ ../index.html#19