亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標題: shell編程寫一個判斷一個數(shù)是不是素數(shù)(也就是質數(shù)) [打印本頁]

作者: zghhhhh    時間: 2013-12-29 18:01
標題: shell編程寫一個判斷一個數(shù)是不是素數(shù)(也就是質數(shù))
先讀取一個數(shù) read  num ;然后就循環(huán)進行判斷,可是不太會寫循環(huán)里面的句子,shell是剛接觸,不是特別了解,希望大神能給個借鑒。謝謝了
作者: linux_c_py_php    時間: 2013-12-30 10:07
  1. #!/bin/bash

  2. while read num;do
  3.     if [[ ! $num =~ ^[0-9]*$ ]];then
  4.         echo "input integer please"
  5.         continue
  6.     fi
  7.     n=`echo ${num}%2 | bc`
  8.     if [ $n -eq 1 ];then
  9.         echo "$num is prime"
  10.     else
  11.         echo "$num is not prime"
  12.     fi
  13. done
復制代碼

作者: MMMIX    時間: 2013-12-30 10:21
回復 2# linux_c_py_php


    質數(shù)是只有 1 和它自身兩個正除數(shù)的數(shù),例如 2, 3, 5, 7 等;而不是能否被 2 整除。
作者: syre    時間: 2013-12-30 10:27
本帖最后由 syre 于 2013-12-30 10:31 編輯

有個factor命令

$ factor 510549076672471
510549076672471: 510549076672471

$ factor 510549076672472
510549076672472: 2 2 2 3061087 20848357
作者: MMMIX    時間: 2013-12-30 11:38
回復 4# syre


找出小于 100 的素數(shù):

  1. for n in `seq 1 100`; do factor $n | awk '{ if (NF == 2) print $2 }' ; done
復制代碼

作者: MMMIX    時間: 2013-12-30 11:41
回復 2# linux_c_py_php


    使用 bc 判斷一個整數(shù)是否為素數(shù):

  1. define isprime (n) {
  2.         auto f;

  3.         if (n < 2) return 0;

  4.         for ( f = 2; f <= sqrt(n); f++)
  5.                 if (n % f == 0) return 0;
  6.         return 1;
  7. }
復制代碼
使用上述函數(shù)找出小于100的素數(shù):

  1. #!/bin/bash

  2. for n in `seq 1 100`; do
  3.         b=$(echo "isprime($n)" | bc isPrime.bc)
  4.         if [ $b -eq 1 ]; then
  5.                 echo $n
  6.         fi
  7. done
復制代碼

作者: zghhhhh    時間: 2013-12-31 00:00
MMMIX 發(fā)表于 2013-12-30 10:21
回復 2# linux_c_py_php


說的對。。。




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2