Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   *nix (https://forum.antichat.xyz/forumdisplay.php?f=43)
-   -   Нужна помощь с shell скриптом. (https://forum.antichat.xyz/showthread.php?t=164085)

m0le[x] 16.12.2009 22:06

Нужна помощь с shell скриптом.
 
Линуксойды, обращаюсь к вам за помощью.

В общем нужно написать 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, спасибо большое. А вообще еще актуально, кто поможет сделать скрипт покомпактней, у меня с этими циклами нездоровые мысли приходят. И на каком этапе разбивать на строки и делать пропуск строки, после каждого элемента, или уже потом после вывода всех данных?


Время: 16:46