#!/bin/bash
# Skrypt isprime sprawdzający, czy podana liczba jest liczbą pierwszą.
# Zastosowana jest w nim metoda próbnych dzieleń, polegająca po prostu
# na sprawdzaniu, czy po podzieleniu danej liczby przez któryś z dzielników
# z przedziału 2...(n-1) reszta jest równa zero.

counter=2
remainder=1

if [ $# -eq 0 ] ; then
  echo "Użycie: isprime liczba" >&2
  exit 1
fi

number=$1

# 3 i 2 są liczbami pierwszymi, ale 1 nie jest.

if [ $number -lt 2 ] ; then
  echo "Nie, $number nie jest liczbą pierwszą." ; exit 0
fi

# Teraz wykonajmy kilka obliczeń.

while [ $counter -le $(expr $number / 2) -a $remainder -ne 0 ]
do
  remainder=$(expr $number % $counter)  # Symbol '/' oznacza dzielenie,
                                        # a '%' obliczenie reszty.
  # echo "  Dzielenie przez $counter daje resztę $remainder."
  counter=$(expr $counter + 1)
done

if [ $remainder -eq 0 ] ; then
  echo "Nie, $number nie jest liczbą pierwszą."
else
  echo "Tak, $number jest liczbą pierwszą." 
fi
exit 0
