Scratch 繰り返し応用課題7
課題内容
入力した自然数から、「素数」・「素数ではない」を判別して出力
解答
解答を表示する
スプライト1
追加
@greenFlagが押されたとき [自然数を入力してください。]と聞いて待つ [x v]を(答え)にする [割る数 v]を(1)にする [約数の個数 v]を(0)にする (x)回繰り返す もし<((x)を(割る数)で割った余り)=(0)>なら [約数の個数 v]を(1)ずつ変える end [割る数 v]を(1)ずつ変える end もし<(約数の個数)=(2)>なら [結果 v]を[素数]にする でなければ [結果 v]を[素数ではない]にする end ([結果:]と(結果))と(2)秒言う
解説
解説を表示する
スプライト1
追加
@greenFlagが押されたとき
緑の旗が押されたとき、スクリプトを開始する
[自然数を入力してください。]と聞いて待つ [x v]を(答え)にする
キーボードから入力した数値を変数「x」に格納する
[割る数 v]を(1)にする [約数の個数 v]を(0)にする
変数の初期設定
((x)の長さ)回繰り返す end
変数「x」回繰り返す
もし<((x)を(割る数)で割った余り)=(0)>なら [約数の個数 v]を(1)ずつ変える end [割る数 v]を(1)ずつ変える
変数「x」を1から順に割っていき、約数の個数を数える
「○で割り切れる」→「○は約数」
もし<(約数の個数)=(2)>なら [結果 v]を[素数]にする でなければ [結果 v]を[素数ではない]にする end
変数「約数の個数」から、「素数」・「素数ではない」を判別をして変数「結果」に格納する
「素数」・「素数ではない」→「約数が2個」・「約数が2個ではない」
([結果:]と(結果))と(2)秒言う
スプライトの上に変数「結果」のふきだしを表示する