Math::BigInt
module in Perl provides objects that represent integers with arbitrary precision and overloaded arithmetical operators.
bfac()
method of Math::BigInt
module is used to calculate factorial of a number stored as BigInt
object.
Syntax: Math::BigInt->bfac()
Parameter: None
Returns: a normalised BigInt object whose value represents the factorial of the given number.
Example 1: Use of Math::BigInt->bfac()
method
#!/usr/bin/perl # Import Math::BigInt module use Math::BigInt;
$num = 5;
# Calculate the factorial of # the above specified number # Create a BigInt object $x = Math::BigInt->new( $num );
# Use Math::BigInt->bfac() method # to calculate factorial $factorial = $x ->bfac();
print "Factorial of $num : $factorial\n" ;
$num = 10;
# Calculate the factorial of # the above specified number # Create a BigInt object $x = Math::BigInt->new( $num );
# Use Math::BigInt->bfac() method # to calculate factorial $factorial = $x ->bfac();
print "Factorial of $num : $factorial\n" ;
|
Factorial of 5 : 120 Factorial of 10 : 3628800
Example 2: Use of Math::BigInt->digit()
method to count digits in factorial of big numbers
#!/usr/bin/perl # Import Math::BigInt module use Math::BigInt;
$num = 100;
# Calculate the factorial of # the above specified number # Create a BigInt object $x = Math::BigInt->new( $num );
# Use Math::BigInt->bfac() method # to calculate factorial $factorial = $x ->bfac();
# Print the factorial print "Factorial of $num : $factorial \n" ;
# Print count of digits in factorial $count = $factorial -> length ();
print "Count of digits in factorial : $count" ;
|
factorial of 100 : 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000 Count of digits in factorial : 158
Example 3: Use of Math::BigInt->digit()
method to calculate value of nCr.
#!/usr/bin/perl # Import Math::BigInt module use Math::BigInt;
# Value of n $n = 5;
# Value of r $r = 3;
# Create BigInt objects $x = Math::BigInt->new( $n );
$y = Math::BigInt->new( $r );
$z = Math::BigInt->new( $n - $r );
# calculate nCr using # formula n! / (r! * (n-r)!) $nCr = $x ->bfac() / ( $y ->bfac() * $z ->bfac());
# Print calculated value of nCr print "Value of ${n}C${r} : $nCr \n" ;
# Value of n $n = 50;
# Value of r $r = 15;
# Create BigInt objects $x = Math::BigInt->new( $n );
$y = Math::BigInt->new( $r );
$z = Math::BigInt->new( $n - $r );
# calculate nCr using # formula n! / (r! * (n-r)!) $nCr = $x ->bfac() / ( $y ->bfac() * $z ->bfac());
# Print calculated value of nCr print "Value of ${n}C${r} : $nCr \n" ;
|
Value of 5C3 : 10 Value of 50C15 : 2250829575120