#shell
Вопрос:
Я пытаюсь решить этот вопрос и знаю, как проверить идеальное число. Код, для которого используется
read no
i=1
ans=0
while [ $i -le `expr $no / 2` ]
do
if [ `expr $no % $i` -eq 0 ]
then
ans=`expr $ans $i`
fi
i=`expr $i 1`
done
if [ $no -eq $ans ]
then echo $no is perfect
else
echo $no is not perfect
fi
Я не в состоянии понять, как мне ввести диапазон чисел и проверить. Я считаю, что использование цикла «пока» было бы полезно, но я не могу понять, как это сделать?
Ответ №1:
Вам понадобится for
цикл, как описано в https://www.gnu.org/software/bash/manual/bash.html#Looping-Constructs
for ((no = 1; no < $upper_limit; no )); do
...
done