實現素數線性篩
阿新 • • 發佈:2018-11-11
-
知識準備
-
for
迴圈for i in `seq 1 10`; do echo ${i} done #執行結果 --------- 1 2 3 4 5 6 7 8 9 10 -------- for ((i = 0; i < 10; i++)); do echo ${i} done # 執行結果與上面程式碼相同 # 雙小括號中可以使用C語言一樣的語法進行數學計算 # echo 是回顯 # 美元符號用來取值:取變數值和陣列值(用大括號括把變數或陣列起來)、取命令的值(用小括號或<Tab>鍵上面的``符號括起來,如果用`符號擴起來就不用美元符號取值了)
-
if
分支語句num=0 if [[ ${num} -eq 0 ]];then echo "YES" elif [[ ${num} -eq 1 ]];then echo "NO" else echo "???" fi # 執行結果 # 數值判斷用-eq(==)、-ne(!=)、-gt(>)、-ge(>=)、-lt(<)、-le(<=) # 字串判斷用邏輯等和不等(==、!=) --------- YES ---------
-
expr 語句 該語句後面加上數學表示式,可以求數學表示式的值,但是
*
號前需要加上轉義符號\
-
-
程式碼
#!/bin/bash if [[ "x${1}" == x ]];then MAX=10 else MAX=${1} fi num=0 for((i = 0; i < ${MAX}; i++)); do prime[${i}]=0 done for((i = 2; i < ${MAX}; i++)); do if [[ ${prime[$i]} -eq 0 ]];then prime[$num]=$i ((num++)) fi for((j = 0; j < ${num};