今天我們用scratch的小程序來判定質數。
判定質數提問
判定質數1
判定質數2
題目:給你一個大于1的自然數,請判斷它是合數還是質數。
角色:小貓;
知識點:質數,循環,選擇,偵測,變量;
質數知識普及:
概念:質數就是隻有1和它自身兩個因數的數。
判定質數的方法:
1)直觀判斷法:根據定義,直接判斷從2到n-1是否存在n的約數,就是看n能不能被2到n-1中的某個數整除。隻要有一個數能被n整除,n就是合數;如果都不能被n整除,n就是質數。比如79,我們就看它能不能被2到78中的某一個數整除。
2)算術平方根判斷法:上述判斷方法,明顯存在效率極低的問題。對于每個數n,其實并不需要從2判斷到n-1,我們知道,一個數若可以進行因數分解,那麼分解時得到的兩個數一定是一個小于等于sqrt(n),一個大于等于sqrt(n),據此,上述代碼中并不需要遍曆到n-1,遍曆到sqrt(n)即可,因為若sqrt(n)左側找不到約數,那麼右側也一定找不到約數。
一、準備工作
1、背景和角色:今天的小程序背景和角色都使用系統默認的;
2、變量:新建兩個變量,分别命名為“n”和“i”,變量n存儲需要判定的數,變量i作為循環變量;
變量i
二、編輯腳本
1、初始化,變量賦值:兩個變量初始化為0,偵測到輸入的數後,給變量n賦值“回答”,變量i賦值2,表示從2開始試除;
變量初始化賦值
2、循環條件:當循環變量i大于變量n的算術平方根時,退出循環,說明沒有可以整除變量n的數,當前的數n為質數;
循環條件
3、選擇判斷1:循環體内部使用有兩個分支的選擇結構,“如果……那麼……否則……”,如果從2開始有可以整除n的數,即n/i餘數為0,那麼變量n就是合數,停止全部腳本;
選擇判斷1
4、選擇判斷2:否則,從2開始到n的算術平方根,逐一判斷如果不能整除n,即n/i餘數不為0,那麼給變量i增加1,繼續循環;
選擇判斷2
三、完整腳本
完整腳本
想一想,如果想使用直觀判斷法的話,怎麼修改腳本呢?
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!