bash - 如何在 Unix 中获取给定数字的因子?

标签 bash functional-programming

在获取数字的因数时,我有这个顾虑。我的代码给了我一个数字的所有因素的总数。我想要的是它应该只显示那个数字的因素,而不是总数。例如我输入 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

虽然对于大数字来说有点慢。

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

相关文章:

linux - 将交互式 bash session 通过管道传输到文件

clojure - 如何在 Clojure 中正确使用 "iterate"和 "partial"?

linux - BASH - 删除超过 3 个月的文件?

bash - 删除输入列表的可变部分

functional-programming - 关于 erlang 和函数式编程的一个不重要的问题

javascript - Underscore JS _.partial 减少维护备忘录引用并将整数转换为字符串?

java - 调用批处理文件Java程序

java - 通过流从其他 map 收集 map

linux - Unix/Linux Bash 脚本 : sed doesn't respect spaces

linux - 在脚本中使用 ssh 执行 passwd 命令后没有返回