Skip to content
Related Articles

Related Articles

Perl | Math::BigInt->length() method
  • Last Updated : 03 Oct, 2019
GeeksforGeeks - Summer Carnival Banner

Math::BigInt module in Perl provides objects that represent integers with arbitrary precision and overloaded arithmetical operators.

length() method of Math::BigInt module is used to get the length of the given number i.e the count of digits in the given number.

Syntax: Math::BigInt->length()

Parameter: None

Returns: an integer value which represents the length of the given number.



Example 1: Use of Math::BigInt->length() method to count digits in a number




#!/usr/bin/perl 
  
# Import Math::BigInt module
use Math::BigInt;
  
# Specify number
$num = 78215936043546;
  
# Create BigInt object
$x = Math::BigInt->new($num);
  
# Get the length (or count of 
# digits) of the
# given number using
# Math::BigInt->length() method
$len = $x->length();
  
print "Length of $num is $len.\n";
  
# Specify another number
$num = 7821593604584625197;
  
# Create BigInt object
$x = Math::BigInt->new($num);
  
# Get the length (or count of 
# digits) of the
# given number using
# Math::BigInt->length() method
$len = $x->length();
  
print "Length of $num is $len.\n";
Output:
Length of 78215936043546 is 14.
Length of 7821593604584625197 is 19.

Example 2: Use of Math::BigInt->length() method to split a given number into two halves.




#!/usr/bin/perl 
  
# Import Math::BigInt module
use Math::BigInt;
  
# Specify number
$num = 78215936043546;
  
# Create BigInt object
$x = Math::BigInt->new($num);
  
# Get the length (or count of 
# digits) of the
# given number using
# Math::BigInt->length() method
$len = $x->length(); 
  
# Variable to store first half
$firstHalf = 0;
$i = 1;
  
# loop to calculate first half
while($i <= ($len/2))
{
    $firstHalf = ($firstHalf * 10) + 
                    $x->digit(-$i);
    $i = $i + 1;
      
}
  
# Variable to store second half
$secondHalf = 0;
  
# Loop to calculate second half
while($i <= $x->length())
{
    $secondHalf = ($secondHalf * 10) + 
                      $x->digit(-$i);
    $i = $i + 1;
}
  
# Note: Math::BigInt->digit() method
# returns the digit at ith position 
# from right end of the given number
# a negative value of i is used
# to get ith digit from left end 
# of the given number
  
# Print original number
print "Original number: $num\n";
  
# Print first half
print "First half: $firstHalf\n";
  
# Print Second half
print "Second half: $secondHalf";
Output:
Original number: 78215936043546
First half: 7821593
Second half: 6043546

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :