#!/bin/sh
printf "약수를 구합니다. 숫자를 입력하세요: "
read num
# 제곱근값으로 소수를 전달하면 bash에서 오류가 나기 때문에 정수로 전달하기 위해 scale=0를 설정했다.
rootNum=$(bc <<< "scale=0; sqrt($num)")
printf "$num의 약수: \n"
for ((i=1; i<=rootNum; i++))
do
# 어떤 정수로 나눠지면, 나누는 수와 나눠지는 수를 한쌍으로 출력한다
if (( $num % $i == 0 ))
then
#몫을 임시 저장. 나머지는 0임. (분모 몫) 형식으로 출력
tmp=$(($num/$i))
printf "($i $tmp)\n"
fi
done
printf "\n"
--실행 결과--
[Don@localhost BASH]$ sh getDivisor.sh
약수를 구합니다. 숫자를 입력하세요: 100
100의 약수:
(1 100)
(2 50)
(4 25)
(5 20)
(10 10)
[Don@localhost BASH]$ sh getDivisor.sh
약수를 구합니다. 숫자를 입력하세요: 4294145925
4294145925의 약수:
(1 4294145925)
(3 1431381975)
(5 858829185)
(9 477127325)
(15 286276395)
(25 171765837)
(45 95425465)
(75 57255279)
(225 19085093)
카테고리 없음