PDA

Просмотр полной версии : Нужна помощь с shell скриптом.


m0le[x]
16.12.2009, 22:06
Линуксойды, обращаюсь к вам за помощью.

В общем нужно написать shell скрипт, который подсчитает все простые числа. Диапазон чисел задается аргументами.
В случае если, аргументы отсутствуют, использовать диапазон от 10000 до 13000.
Результат сохранить в файл, числа необходимо сгруппировать по 1 шт. в стоке + пустая
строка через каждые 5 чисел, имя файла задается пользователем. На экран вывести
время, затраченное на поиск чисел в формате: total time elapsed: <время>, используя утилиту time.

Заранее спасибо.

m0le[x]
16.12.2009, 22:39
Такс.. задача упрощается, кто может, напишите пожалуйста только весь цикл, в котором идет проверка по диапазону, и если число простое то выводится на экран, а после него переход на другую строку, а после 5 выведенных чисел, оставлять пустую строку.

altblitz
16.12.2009, 22:44
вот,
для начала функция определяющая,
простое число или нет. www.thinkdigit.com/forum/showpost.php?p=754202&postcount=6


echo -e "Enter a number: \c"
read num

можно ввести в возрастающий цикл 10.000-13.000

#!/bin/sh

i=2
rem=1

echo -e "Enter a number: \c"
read num

if [ $num -lt 2 ]; then
echo -e "$num is not prime\n"
exit 0
fi

while [ $i -le `expr $num / 2` -a $rem -ne 0 ]; do
rem=`expr $num % $i`
i=`expr $i + 1`
done

if [ $rem -ne 0 ]; then
echo -e "$num is prime\n"
else
echo -e "$num is not prime\n"
fi

m0le[x]
18.12.2009, 01:58
altblitz, спасибо большое. А вообще еще актуально, кто поможет сделать скрипт покомпактней, у меня с этими циклами нездоровые мысли приходят. И на каком этапе разбивать на строки и делать пропуск строки, после каждого элемента, или уже потом после вывода всех данных?