Пример 12-37. Разложение числа на простые множители

Пример 12-37. Разложение числа на простые множители

#!/bin/bash

# factr.sh: Разложение числа на простые множители

MIN=2 # Не работает с числами меньше 2.

E_NOARGS=65

E_TOOSMALL=66

if [ -z $1 ]

then

echo "Порядок использования: $0 number"

exit $E_NOARGS

fi

if [ "$1" -lt "$MIN" ]

then

echo "Исходное число должно быть больше или равно $MIN."

exit $E_TOOSMALL

fi

# Упражнение: Добавьте проверку типа числа (не целые числа должны отвергаться).

echo "Простые множители для числа $1:"

# ---------------------------------------------------------------------------------

echo "$1[p]s2[lip/dli%0=1dvsr]s12sid2%0=13sidvsr[dli%0=1lrli2+dsi!>.]ds.xd1<2" | dc

# ---------------------------------------------------------------------------------

# Автор вышеприведенной строки: Michel Charpentier <charpov@cs.unh.edu>.

# Используется с его разрешения (спасибо).

exit 0

awk

Еще один способ выполнения математических операций, над числами с плавающей запятой, состоит в создании сценария-обертки, использующего математические функции awk.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Разложение по стопкам

Из книги Компьютер на 100. Начинаем с Windows Vista автора Зозуля Юрий

Разложение по стопкам При выборе режима разложения по стопкам файлы в папке упорядочиваются в виде стопок по значениям выбранного свойства (рис. 2.42). Для применения этого режима просмотра щелкните кнопкой мыши на стрелке справа от нужного заголовка и выполните команду


Разложение по стопкам

Из книги Windows Vista автора Вавилов Сергей

Разложение по стопкам Разложение по стопкам подразумевает организацию файлов текущей папки и всех ее вложенных каталогов в виде стопок по определенному признаку, за который отвечает один из столбцов. Щелкните кнопкой мыши на стрелке заголовка столбца, по значениям


Простые классы

Из книги Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT автора Фролов Александр Вячеславович

Простые классы MFC содержит классы, соответствующие объектам типа простых геометрических фигур, текстовых строк и объектам, определяющим дату и время. В следующей таблице перечислены названия этих классов и их краткие описания. Класс Описание CPoint Объекты класса


6.6. Простые примеры

Из книги UNIX: взаимодействие процессов автора Стивенс Уильям Ричард

6.6. Простые примеры Поскольку очереди сообщений System V обладают живучестью ядра, мы можем написать несколько отдельных программ для работы с этими очередями и изучить их


10.5. Простые примеры

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

10.5. Простые примеры В этом разделе мы напишем несколько простых программ, работающих с именованными семафорами Posix. Эти программы помогут нам узнать особенности функционирования и реализации семафоров. Поскольку именованные семафоры Posix обладают по крайней мере


11.5. Простые программы

Из книги Программирование игр и головоломок автора Арсак Жак

11.5. Простые программы Поскольку семафоры System V обладают живучестью ядра, мы можем продемонстрировать работу с ними, написав несколько небольших программ, которые будут выполнять с семафорами различные действия. В промежутках между выполнением отдельных программ


5.14. Простые числа

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.


Простые числа

Из книги Искусство программирования на языке сценариев командной оболочки автора Купер Мендель

Простые числа ??** Головоломка 16. Чемпион головоломок.На мой взгляд, наиболее замечательная арифметическая головоломка, над которой мне пришлось особенно долго работать и которая дала мне возможность получить некоторые удовлетворительные результаты, — это, конечно,


Сложение гармоник и разложение на гармонические составляющие

Из книги Linux программирование в примерах автора Роббинс Арнольд

Сложение гармоник и разложение на гармонические составляющие Создадим новый входной файл, соответствующий рис. 7.4, на котором к схеме рис. 7.1 добавлены еще два независимых источника тока. Мы использовали два источника только для того, чтобы вы могли получить основную и


12.1.2. Простые сигналы

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид

12.1.2. Простые сигналы Изначально обработка сигналов была проста. Системный вызов signal() использовался для того, чтобы сообщить ядру, как доставить процессу определенный сигнал.#include <signal.h>void * signal(int signum, void *handler);Здесь signum — это сигнал, который нужно обработать, a handler


Пример A-8. days-between: Подсчет числа дней между двумя датами

Из книги автора

Пример A-8. days-between: Подсчет числа дней между двумя датами #!/bin/bash# days-between.sh: Подсчет числа дней между двумя датами.# Порядок использования: ./days-between.sh [M]M/[D]D/YYYY [M]M/[D]D/YYYYARGS=2 # Ожидается два аргумента из командной строки.E_PARAM_ERR=65 # Ошибка в числе ожидаемых


6.1.2. Разложение времени: gmtime() и localtime()

Из книги автора

6.1.2. Разложение времени: gmtime() и localtime() На практике форма представления даты и времени в виде «секунд с начала эпохи» не является очень удобной, кроме очень простых сравнений. Самостоятельное вычисление компонентов времени, таких, как месяц, день, год и т.д., подвержено


18.3.1. Простые операторы if

Из книги автора

18.3.1. Простые операторы if Базовая структура оператора if выглядит следующим образом:if условие then командыfiПри использовании оператора if команды ветви then следует указывать в новой строке; если это правило нарушается, отображается сообщение об ошибке. По поводу применения


18.3.10. Простые операторы if else

Из книги автора

18.3.10. Простые операторы if else Следующая форма оператора if применяется чаще всего:if условие then команды1 elseкоманды2 fiЕсли условие не удовлетворяет тестированию, часть else оператора if позволяет перейти к соответствующей