ruby求50之內的素數的方法,感覺對比php和shell方法是最簡單的,但shell中可以利用factor命令,而php中沒有求素數的對應函式的,需要自己設計演算法,三種方式大家對比學習下,應該還有更優更簡單的方法的。
#encoding:utf-8
#求50以內的素數(注意數字中..與...的區別)
for i in 2..50 #1預設不為素數,所以從1-50範圍內被排除
f=true #起始假定每個數都是素數
for p in 2...i #比自身小的正整數(1和自身除外)
if i%p==0 #如果能整除
f=nil#那麼這個數不是素數
break #並且跳出這層迴圈
end # if 結束
end #內層迴圈結束
print i," " if f #如果這個數保持起始假定,則列印
end #外層迴圈結束
php**如下:
<?phpshell的方式略為簡單些,**如下:echo "以下程式會輸出50以內的素數:";
for($m=1;$m<=50;$m++)
} if($k==2)
}?>
#!/bin/bash#factor是shell命令,可以求出後面所接數字中的所有素數。
for i in
do factor $i | awk -f '[: ]' ''
done
求100之內的素數
題目 求100之內的素數 程式分析 判斷素數的方法 用乙個數分別去除2到 sqrt 這個數 如果能被整除,則表明此數不是素數,反之是素數。1 package com.li.fiftyalgorthm 23 4 題目 判斷101 200之間有多少個素數,並輸出所有素數。5 程式分析 判斷素數的方法 用...
篩法求素數 求100之內的素數
素數 定義為在大於1的自然數中,除了1和它本身以外不再有其他因數。篩法求素數,需要對素數和非素數做出不同的標記,或者只標記非素數 素數 現用0標記非素數,素數不標記。引用陣列,使0 100與陣列元素一 一相對應 0即a 0 1即a 1 2即a 2 注意特例,1 即a 1 不是素數,首先標記為0 剩下...
用篩選法求100之內的素數
所謂篩選法,指的是 埃拉託色尼篩法 採取的方法是,在一張紙上寫上1 100 全部的整數 然後逐個判斷他們是否為素數,找出乙個非素數,就把他挖掉,最後剩下的就是素數 具體做法如下所示 先把1挖掉,因為1不是素數 用2除它後面的各個數,能把2整除的數挖掉,即就是把2的倍數挖掉 用3除它後面的各個數,把3...