Math::BigInt
módulo en Perl proporciona objetos que representan números enteros con precisión arbitraria y operadores aritméticos sobrecargados.
length()
El método de Math::BigInt
módulo se utiliza para obtener la longitud del número dado, es decir, el recuento de dígitos en el número dado.
Sintaxis: Math::BigInt->longitud()
Parámetro: Ninguno
Devuelve: un valor entero que representa la longitud del número dado.
Ejemplo 1: uso del Math::BigInt->length()
método para contar dígitos en un número
#!/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";
Producción:
Length of 78215936043546 is 14. Length of 7821593604584625197 is 19.
Ejemplo 2: Uso del Math::BigInt->length()
método para dividir un número dado en dos mitades.
#!/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";
Producción:
Original number: 78215936043546 First half: 7821593 Second half: 6043546