我有这个顾虑,当得到一些因素的时候。我的代码给出了一个数的所有因子的总数,我想要的是它只显示这个数的因子,而不是总数。例如,我输入9,输出应该是1、3和9。
我的代码

echo -n " enter a no. "
read n
i=1
mul=1
until [ $i -gt $n ]
do
mul=`expr $mul \* $i `
i=`expr $i + 1 `
done
echo " factorial of $n is $mul "

最佳答案

假设用户以最简单的形式输入数字,例如9,而不是09.0,则此操作有效:

echo -n " enter a no. "
read n
for i in $(seq 1 $n)
do
 [ $(expr $n / $i \* $i) == $n ] && echo $i
done

但对于大量的数据来说有点慢。

关于linux - 如何获得Unix中给定数字的因子?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29538679/

10-09 07:23