#!/bin/bash

#####  Test ob Zahl eingegeben  #####
if [ $# -eq 0 ]; then
	echo -n "Bitte geben Sie eine natürliche Zahl ein: "
	read n
else
	n=$1
fi

#####  Test ob eingegebene Zahl negativ #####
while [ $n -lt 0 ]; do
	echo -n "Zahl muss >=0 sein - bitte erneut eingeben: "
	read n
done

##### Fakultaet von n berechnen #####
i=1
fak=1
fakold=1

while [ $i -le $n ]; do
	fak=`expr $fak \* $i`
	h=`expr $fak / $i`
	if [ $h -ne $fakold ]; then
		i=`expr $i - 1`
		echo "Wertebereich ueberschritten - Abbruch..."
		echo "Letzte korrekt berechnete Fakultaet: $i! = $fakold"
		exit
	fi
	i=`expr $i + 1`
	fakold=$fak
done
echo "Ergebnis: $n! = $fak"
