100以下の素数で、3が含まれる素数を表示するプログラムを作成する方法を教えてください。

100以下の素数で、3が含まれる素数を表示するプログラムを作成する方法を教えてください。 できればfor文を使った方法が良いです。 Ubuntu 18.04 LTSです。 よろしくお願いします。

Linux系39閲覧

ベストアンサー

1

#!/bin/bash function prime { for((i=2; i<=$1/2; i++)) do if [ $(($1%i)) -eq 0 ] then return 1 fi done return 0 } for k in $(seq 2 100) do prime $k if [ $? -eq 0 ] then echo $k | grep 3 fi done

1人がナイス!しています

function使わず、forのネストでも行けるか。 #!/bin/sh for i in $(seq 2 100) do MAX_DIVIDER=$(($i/2)) PRIME=0 for k in $(seq 2 $MAX_DIVIDER) do if [ $(($i%$k)) -eq 0 ]] then PRIME=1 continue fi done if [ $PRIME -eq 0 ] then echo $i | grep 3 fi done