Python Program to Find Sum of First and Last Digit

In this article, we explore how to find the sum of the first and last digits of an integer. This task requires extracting the first digit (leftmost) and the last digit (rightmost) from any number, then adding them together. We'll demonstrate four different approaches to solve this problem.

Method 1: Using Repeated Division to Count Digits

This approach counts digits by repeatedly dividing the number by 10, then extracts the first digit using division and the last digit using modulo ?

import math

def count_digits(number):
    count = 0
    while number != 0:
        number //= 10
        count += 1
    return count

def sum_first_last_digits(number):
    digit_count = count_digits(number)
    first_digit = math.floor(number / 10**(digit_count - 1))
    last_digit = number % 10
    return first_digit + last_digit

numbers = [881234, 954321, 7178952, 20033, 459, 20069]

for num in numbers:
    result = sum_first_last_digits(num)
    first = math.floor(num / 10**(count_digits(num) - 1))
    last = num % 10
    print(f"Number: {num}, First: {first}, Last: {last}, Sum: {result}")
Number: 881234, First: 8, Last: 4, Sum: 12
Number: 954321, First: 9, Last: 1, Sum: 10
Number: 7178952, First: 7, Last: 2, Sum: 9
Number: 20033, First: 2, Last: 3, Sum: 5
Number: 459, First: 4, Last: 9, Sum: 13
Number: 20069, First: 2, Last: 9, Sum: 11

Method 2: Using math.log10() to Count Digits

This method uses logarithms to calculate the number of digits more efficiently ?

import math

def count_digits_log(number):
    return math.floor(math.log10(number) + 1)

def sum_first_last_digits_log(number):
    digit_count = count_digits_log(number)
    first_digit = math.floor(number / 10**(digit_count - 1))
    last_digit = number % 10
    return first_digit + last_digit

numbers = [1234, 54321, 678952, 200, 45, 10069]

for num in numbers:
    result = sum_first_last_digits_log(num)
    first = math.floor(num / 10**(count_digits_log(num) - 1))
    last = num % 10
    print(f"Number: {num}, First: {first}, Last: {last}, Sum: {result}")
Number: 1234, First: 1, Last: 4, Sum: 5
Number: 54321, First: 5, Last: 1, Sum: 6
Number: 678952, First: 6, Last: 2, Sum: 8
Number: 200, First: 2, Last: 0, Sum: 2
Number: 45, First: 4, Last: 5, Sum: 9
Number: 10069, First: 1, Last: 9, Sum: 10

Method 3: Converting to String and Using Length

This approach converts the integer to a string to easily count digits, then uses mathematical operations to extract first and last digits ?

import math

def count_digits_string(number):
    return len(str(number))

def sum_first_last_digits_string(number):
    digit_count = count_digits_string(number)
    first_digit = math.floor(number / 10**(digit_count - 1))
    last_digit = number % 10
    return first_digit + last_digit

numbers = [11234, 554321, 6789521, 2004, 3455, 60069]

for num in numbers:
    result = sum_first_last_digits_string(num)
    first = math.floor(num / 10**(count_digits_string(num) - 1))
    last = num % 10
    print(f"Number: {num}, First: {first}, Last: {last}, Sum: {result}")
Number: 11234, First: 1, Last: 4, Sum: 5
Number: 554321, First: 5, Last: 1, Sum: 6
Number: 6789521, First: 6, Last: 1, Sum: 7
Number: 2004, First: 2, Last: 4, Sum: 6
Number: 3455, First: 3, Last: 5, Sum: 8
Number: 60069, First: 6, Last: 9, Sum: 15

Method 4: Using String Indexing

This is the simplest approach convert to string and use index positions to directly access first and last characters ?

def sum_first_last_digits_index(number):
    str_num = str(number)
    first_digit = int(str_num[0])
    last_digit = int(str_num[-1])
    return first_digit + last_digit

numbers = [12343, 543210, 6789529, 9200, 45, 810069]

for num in numbers:
    str_num = str(num)
    first = int(str_num[0])
    last = int(str_num[-1])
    result = sum_first_last_digits_index(num)
    print(f"Number: {num}, First: {first}, Last: {last}, Sum: {result}")
Number: 12343, First: 1, Last: 3, Sum: 4
Number: 543210, First: 5, Last: 0, Sum: 5
Number: 6789529, First: 6, Last: 9, Sum: 15
Number: 9200, First: 9, Last: 0, Sum: 9
Number: 45, First: 4, Last: 5, Sum: 9
Number: 810069, First: 8, Last: 9, Sum: 17

Comparison

Method Time Complexity Best For Pros
Repeated Division O(log n) Pure mathematical approach No string conversion
math.log10() O(1) Efficient digit counting Fastest for large numbers
String Length O(log n) Easy to understand Simple digit counting
String Indexing O(log n) Simplest code Most readable

Conclusion

The string indexing method (Method 4) is the most readable and straightforward approach. For performance-critical applications with large numbers, the math.log10() method offers the best efficiency. Choose the method that best fits your specific requirements and coding style preferences.

Updated on: 2026-03-27T07:20:14+05:30

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements