如何在 Unix 中获取给定数字的因子?
How to get the factors of a given number in Unix?
我在求一个数的因数时有这个顾虑。我的代码给出了我想要的 number.What 的所有因子的总数,它应该只显示该数字的因子,而不是总数。例如我输入 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
虽然对于大数字来说有点慢。
我在求一个数的因数时有这个顾虑。我的代码给出了我想要的 number.What 的所有因子的总数,它应该只显示该数字的因子,而不是总数。例如我输入 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
虽然对于大数字来说有点慢。