#!/usr/bin/perl -w
# exer03_14.pl
# Вычисление факториала заданного числа

# Этап инициализации
$Count1 = 1;
$Result1 = 1;

# Этап ввода значений
print "Input your number: ";
chomp ( $Number = <STDIN> );
if ( $Number < 0 )
{
   $Number *= -1;
}
$Num1 = $Number + 1;

# Вычисление факториала числа
while ($Num1 > $Count1)
{
   $Result1 *= $Count1;
   ++$Count1;
}
# Печать результата
print "Your numbers factorial is $Result1\n";


#Вычисление числа е заданного количества знаков
print "\nNumber е at $Number step: ";
$Count2 = 1;
$Result2 = 0;
while ($Number > $Count2)
{
   $Num1 = $Count2;
   $Count1 = 1;
   $Factorial = 1;
   # Вычисление факториала числа
   while ($Num1 > $Count1)
   {
      $Factorial *= $Count1;
      ++$Count1;
   }
   $Factorial = 1 / $Factorial;
   $Result2 += $Factorial;
   print " $Result2  ";
   ++$Count2;
}
#Вычисление числа е в степени х до заданного количества знаков
print "\ne in ratio x: ";
$Count2 = 1;
$Result2 = 0;
while ($Number > $Count2)
{
   $Num1 = $Count2;
   $Count1 = 1;
   $Factorial = 1;
   # Вычисление факториала числа
   while ($Num1 > $Count1)
   {
      $Factorial *= $Count1;
      ++$Count1;
   }
   $Factorial = $Count2 / $Factorial;
   $Result2 += $Factorial;
   print " $Result2  ";
   ++$Count2;
}
#Вычисление числа пи до заданного количества знаков
print "\npi fron $Number sign: ";
$Count2 = 1;
$Result2 = 0;
while ($Number > $Count2)
{
   $DivisionPart = ( 2 * $Count2 -1) * ( -1) ** ($Count2 + 1);
   $DivisionPart = 4 / $DivisionPart;
   $Result2 += $DivisionPart;
   print " $Result2  ";
   ++$Count2;
}