23,117
社区成员
发帖
与我相关
我的任务
分享
#!/bin/sh
for((i=2;i<=$1;i++))
do
flag=0
sqrt=$(echo "sqrt($i)" | bc)
for ((j=2;j<=$sqrt;j++))
do
if [ $(($i%$j)) -eq 0 ]
then
flag=1
break
fi
done
[ $flag -eq 0 ] && echo $i
done
#question 1
#! /bin/bash
read -p "Input a number:" num
while [ $num -gt 0 ]; do
i=2
while [ $i -le $num ]; do
if [ $(($num%$i)) -eq 0 ]; then
break
fi
i=$(($i+1))
if [ $i -eq $(($num -1)) ]; then
echo $num
fi
done
num=$(($num-1))
done
#question 2
可用grep 匹配出满足条件的行再用 wc -l 进行统计
#question 3
if [ -d $value ]; then
ls...
elif [ -f $value ]; then
cat /more /less /expand $value...
else
echo "warning !"
fi
#question 4
echo $PATH | awk -F ":" '{print}'
用for 和数组实现!
####以上只是思路! 楼主可以自己试试~
#!/bin/bash
read -p "Input a number:" num
if [ -z "$num" ] ; then
exit
fi
if [[ "$num" -lt 2 ]] ; then
exit
fi
if [[ "$num" -ge 2 ]] ; then
echo 2
fi
# greate than 2 , do it in python
cat << EOF | python -
import math
def isPrimer(number):
check_start = 3
check_end = int(math.sqrt(number))
for i in xrange(3, check_end+1, 2):
if number % i == 0:
return False
return True
end = $num
start = 3
for i in xrange(start, end+1, 2):
if isPrimer(i):
print i
EOF