#16225: bash shell


a0983095871@gmail.com (Lesson One)

學校 : 不指定學校
編號 : 73922
來源 : [1.168.170.69]
最後登入時間 :
2023-11-26 17:44:09
a010. 因數分解 | From: [111.246.64.98] | 發表日期 : 2018-12-08 16:16

#!/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
 
ZeroJudge Forum