MATLAB判断是不是质数,MATLAB脚本质数的判断
最近打算從小學的課本開始學著練習MATLAB的腳本編程了。練習效果還不錯,下面就是代碼:
% 這個腳本判斷給定a變量是否為質數。
% 運行這個腳本之前需先要給a變量賦值。
i=2;
b=0;
% 循環部分共計循環a-3次。
% 循環代碼意義:
% 判斷a變量從2開始一直到a-1的數中是否含有能夠整除a的數值存在;
% 若存在則輸出判斷結果信息并終止循環;
% 若不存在則繼續循環并使i自增1。
while i
if rem(a,i)==0 % 第一個if
b=rem(a,i);
disp('這個數值不是質數');
break;
end % 第一個if的結束
i=i+1;
end % while語句的結束
% 直到循環結束后b的值被改變為大于零,則說明
% 排除1和a變量本身的值外,沒有數值能夠整除a即
% 從2到a-1的數值中不含有能夠整除a的值存在。
if b>0 % 第二個if
disp('這個數值是質數');
end % 第二個if的結束
這段代碼經過移植到矩陣元素判斷的時候,問題依舊出現了,下面我們就來探討一下問題的根源究竟是哪里。
首先我們要按照正常程序書寫的順序進行,第一步便是說面原理:
1.代碼原理
質數的概念:在自然數中,除了“1”以外,只能被1和它本身整除的數叫做質數,又叫素數,例如2,3等。在自然數中,除了“1”和質數以外的數叫做合數,例如4,6等。“1”既不是質數也不是合數。
2.原理分析
在除法運算中任何自然數都能夠被“1”和它本身整除,而質數特別,它只能被“1”和它本身整除,其他數不能整除。那么我們便依據質數概念將任意數的“1”和它本身以及大于它本身的數排除在外,我們設這個數為a,則剛剛我們所提到的數據范圍可表示為2<=a<=a-1,且a屬于整數。那么在2<=a<=a-1的數據范圍中如果沒有任何數值能夠整除a那么就說明a是個質數。這就是這段程序的本質原理,依據這個原理我們可以編寫出非常精煉的判斷質數的代碼。
===
注意:程序細節問題,其中while循環部分中break啟動的原理是只要遇到從2開始第一個能夠整除a的數,則break終止循環。則此時b=0如果不終止,繼續循環至a-1的值的時候如果a-1的值為不能夠整除a。就會將b再度賦值為大于0的某個數值,此時result又會再度被賦值為這個數值是質數,而我們之前已經明確在判斷區間中確實含有能夠整除數值a的數值存在,就因為沒有break終止循環進行,便造成了結果的再度更改,致使判斷失效。因此這個問題也同樣是移植到其他代碼段中需要重點考慮的問題之一。
===
3.設計程序流程
a變量賦值
|
程序初始化
i=1,b=inf
|
#######################################
#??????????????????????????? 循環環境?????????????????????????????????????????? #
# —————————————————————? #
#?????????????????????????? 條件: i
總結
以上是生活随笔為你收集整理的MATLAB判断是不是质数,MATLAB脚本质数的判断的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 主流视频编码压缩技术基本概念(一)
- 下一篇: 失物招领网开源计划