#!/bin/bash while read num; do power=0 #計算次方 for i in `seq 2 $num`; do #從2開始除 while [ $((num % i)) -eq 0 ]; do #當能繼續整除時就繼續除 power=$((power + 1)) #次方+1 num=$((num / i)) #商當作新的數 done if [ $power -gt 1 ]; then #當此i的質因數除完了且次方大於1時 if [ $num -ne 1 ]; then #當此數還沒完全除到變成1時 printf "%d^%d * " "$i" "$power" else #此數已經無法再除了 printf "%d^%d" "$i" "$power" break fi elif [ $power -eq 1 ]; then #當此i的質因數除完了且次方等於1時,1省略 if [ $num -ne 1 ]; then printf "%d * " "$i" else #此數已經無法再除了 printf "%d" "$i" break fi fi power=0 done printf "\n" done