shell编程检测素数

又是素数,干

先上代码,再分析

#!/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)就可以了,这里我还只是菜鸟,所以就用最笨的方法喽,

发布了23 篇原创文章 · 获赞 16 · 访问量 2946

猜你喜欢

转载自blog.csdn.net/qq_41861442/article/details/97835040
今日推荐