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