# Finds the smallest and largest digits in a number.
#
# @param number [Integer] The input number.
# @return [Array<Integer>] An array containing:
# - smallest digit
# - largest digit
def find_min_max_digits(number)
# Handle negative numbers
number = number.abs
# Special case for 0
return [0, 0] if number == 0
min_digit = 9
max_digit = 0
while number > 0
# Extract the last digit
digit = number % 10
# Update smallest digit
min_digit = digit if digit < min_digit
# Update largest digit
max_digit = digit if digit > max_digit
# Remove the last digit
number /= 10
end
[min_digit, max_digit]
end
# Input data
number = 839516
# Find smallest and largest digits
min_digit, max_digit = find_min_max_digits(number)
# Display results
puts "Number: #{number}"
puts "Smallest digit: #{min_digit}"
puts "Largest digit: #{max_digit}"
# run:
#
# Number: 839516
# Smallest digit: 1
# Largest digit: 9
#