又是素数,干
先上代码,再分析
#!/bin/bash
f1()
{
declare -i flag=1
declare -i count=2
declare numberCompute
declare -i valueSave
if [ $1 -le 1 ]
then
flag=0
return $flag
fi
if [ $1 -eq 2 ]
then
flag=1
return $flag
fi
while [ $count -lt $1 ]
do
valueSave=$1
let numberCompute=$valueSave%$count
echo "$numberCompute"
if [ $numberCompute -eq 0 ]
then
flag=2
return $flag
fi
count=$count+1
done
flag=1
return $flag
}
declare -i numberInput=$1
declare -i result
f1 $numberInput
result=$?
echo " first result :$result"
if [ $result -eq 0 ]
then
echo " fuck , bad number "
exit 0
fi
echo " second result :$result"
if [ $result -eq 1 ]
then
echo " yes , it is a prime number : $numberInput"
else
echo " no , it isn't a prime number : $numberInput"
fi
看代码,写的很乱,对吧,其实很简单的,和C语言编写代码差不多,对,差不多,想死
编写一个函数,参数为一个整型数字,然后判断,<=1,返回0,素数返回 1,不是返回其他数字,这里我返回的2,
然后“主函数”中,定义一个数字保存bash运行时所带的参数,$1,还要定义一个数字保存函数返回值,
这里要注意,函数返回值赋值给一个变量过后,他就莫名其妙变0了,具体原因我明天问了老师再来写,今天的助教一看就不是搞编程的,像个混混,讲不清be,好了,回归主题,保存后,便可以判断了,怎么判断是不是素数呢,循环,从2开始取余,只要过程中有一个数取余可得零,便返回2,一直到数字=你想判断的数字,在c,java中一般判断到sqrt(number)就可以了,这里我还只是菜鸟,所以就用最笨的方法喽,