GeeksforGeeks App
Open App
Browser
Continue

# Find first and last digits of a number

Given a number to find the first and last digit of a number.
Examples:

```Input : 12345
Output : First digit: 1
last digit : 5

Input : 98562
Output : First digit: 9
last digit : 2```

To find last digit of a number, we use modulo operator %. When modulo divided by 10 returns its last digit.
Suppose if n = 1234
then last Digit = n % 10 => 4
To find first digit of a number is little expensive than last digit. To find first digit of a number we divide the given number by 10 until number is greater than 10. At the end we are left with the first digit.

Approach 1 (With loop):

## C++

 `// Program to find first and last``// digits of a number``#include ``using` `namespace` `std;` `// Find the first digit``int` `firstDigit(``int` `n)``{``    ``// Remove last digit from number``    ``// till only one digit is left``    ``while` `(n >= 10)``        ``n /= 10;``    ` `    ``// return the first digit``    ``return` `n;``}` `// Find the last digit``int` `lastDigit(``int` `n)``{``    ``// return the last digit``    ``return` `(n % 10);``}` `// Driver program``int` `main()``{``    ``int` `n = 98562;``    ``cout << firstDigit(n) << ``" "``        ``<< lastDigit(n) << endl;``    ``return` `0;``}`

## Java

 `// Java Program to find first and last``// digits of a number``import` `java.util.*;``import` `java.lang.*;` `public` `class` `GfG{``    ` `    ``// Find the first digit``    ``public` `static` `int` `firstDigit(``int` `n)``    ``{``        ``// Remove last digit from number``        ``// till only one digit is left``        ``while` `(n >= ``10``)``            ``n /= ``10``;``    ` `        ``// return the first digit``        ``return` `n;``    ``}` `    ``// Find the last digit``    ``public` `static` `int` `lastDigit(``int` `n)``    ``{``        ``// return the last digit``        ``return` `(n % ``10``);``    ``}``    ` `    ``// driver function``    ``public` `static` `void` `main(String argc[])``    ``{``        ``int` `n = ``98562``;``        ``System.out.println(firstDigit(n) + ``" "``        ``+ lastDigit(n));``    ``}``}` `// This code is contributed by Sagar Shukla`

## Python3

 `# Python3 program to find first and``# last digits of a number` `# Find the first digit``def` `firstDigit(n) :` `    ``# Remove last digit from number``    ``# till only one digit is left``    ``while` `n >``=` `10``:``        ``n ``=` `n ``/` `10``;``    ` `    ``# return the first digit``    ``return` `int``(n)` `# Find the last digit``def` `lastDigit(n) :` `    ``# return the last digit``    ``return` `(n ``%` `10``)` `# Driver Code``n ``=` `98562``;``print``(firstDigit(n), end ``=` `" "``)``print``(lastDigit(n))` `# This code is contributed by rishabh_jain`

## C#

 `// C# Program to find first and last``// digits of a number``using` `System;` `public` `class` `GfG{``    ` `    ``// Find the first digit``    ``public` `static` `int` `firstDigit(``int` `n)``    ``{``        ``// Remove last digit from number``        ``// till only one digit is left``        ``while` `(n >= 10)``            ``n /= 10;``    ` `        ``// return the first digit``        ``return` `n;``    ``}` `    ``// Find the last digit``    ``public` `static` `int` `lastDigit(``int` `n)``    ``{``        ``// return the last digit``        ``return` `(n % 10);``    ``}``    ` `    ``// driver function``    ``public` `static` `void` `Main()``    ``{``        ``int` `n = 98562;``        ``Console.WriteLine(firstDigit(n) + ``" "``        ``+ lastDigit(n));``    ``}``}` `// This code is contributed by vt_m`

## PHP

 `= 10)``        ``\$n` `/= 10;``    ` `    ``// return the first digit``    ``return` `(int)``\$n``;``}` `// Find the last digit``function` `lastDigit(``\$n``)``{``    ``// return the last digit``    ``return` `((int)``\$n` `% 10);``}` `// Driver Code``\$n` `= 98562;``echo` `firstDigit(``\$n``) . ``" "` `.``     ``lastDigit(``\$n``) . ``"\n"``;` `// This code is contributed``// by Akanksha Rai(Abby_akku)`

## Javascript

 ``

Output

`9 2`

Time Complexity: O(log10n)
Auxiliary Space: O(1)

Approach 2 (Without loop)

## C++

 `// Program to find first and last``// digits of a number``#include ``using` `namespace` `std;` `// Find the first digit``int` `firstDigit(``int` `n)``{``    ``// Find total number of digits - 1``    ``int` `digits = (``int``)``log10``(n);` `    ``// Find first digit``    ``n = (``int``)(n / ``pow``(10, digits));` `    ``// Return first digit``    ``return` `n;``}` `// Find the last digit``int` `lastDigit(``int` `n)``{``    ``// return the last digit``    ``return` `(n % 10);``}` `// Driver program``int` `main()``{``    ``int` `n = 98562;``    ``cout << firstDigit(n) << ``" "``         ``<< lastDigit(n) << endl;``    ``return` `0;``}`

## Java

 `// Java program to find first and``// last  digits of a number``import` `java.math.*;` `class` `GFG {``    ` `    ``// Find the first digit``    ``static` `int` `firstDigit(``int` `n)``    ``{``        ``// Find total number of digits - 1``        ``int` `digits = (``int``)(Math.log10(n));``    ` `        ``// Find first digit``        ``n = (``int``)(n / (``int``)(Math.pow(``10``, digits)));``    ` `        ``// Return first digit``        ``return` `n;``    ``}``    ` `    ``// Find the last digit``    ``static` `int` `lastDigit(``int` `n)``    ``{``        ``// return the last digit``        ``return` `(n % ``10``);``    ``}``    ` `    ``// Driver program``    ``public` `static` `void` `main(String args[])``    ``{``        ``int` `n = ``98562``;``        ``System.out.println(firstDigit(n) +``                           ``" "` `+ lastDigit(n));``    ``}``}`  `// This code is contributed by Nikita Tiwari.`

## Python3

 `# Python3 program to find first ``# and last digits of a number``import` `math` `# Find the first digit``def` `firstDigit(n) :``    ` `    ``# Find total number of digits - 1``    ``digits ``=` `(``int``)(math.log10(n))` `    ``# Find first digit``    ``n ``=` `(``int``)(n ``/` `pow``(``10``, digits))` `    ``# Return first digit``    ``return` `n;` `# Find the last digit``def` `lastDigit(n) :``    ` `    ``# return the last digit``    ``return` `(n ``%` `10``)` `# Driver Code``n ``=` `98562``;``print``(firstDigit(n), end ``=` `" "``)``print``(lastDigit(n))` `# This code is contributed by rishabh_jain`

## C#

 `// C# program to find first and``// last digits of a number``using` `System;` `class` `GFG {``    ` `    ``// Find the first digit``    ``static` `int` `firstDigit(``int` `n)``    ``{``        ``// Find total number of digits - 1``        ``int` `digits = (``int``)(Math.Log10(n));``    ` `        ``// Find first digit``        ``n = (``int``)(n / (``int``)(Math.Pow(10, digits)));``    ` `        ``// Return first digit``        ``return` `n;``    ``}``    ` `    ``// Find the last digit``    ``static` `int` `lastDigit(``int` `n)``    ``{``        ``// return the last digit``        ``return` `(n % 10);``    ``}``    ` `    ``// Driver program``    ``public` `static` `void` `Main()``    ``{``        ``int` `n = 98562;``        ``Console.WriteLine(firstDigit(n) +``                        ``" "` `+ lastDigit(n));``    ``}``}`  `// This code is contributed by vt_m.`

## PHP

 ``

## Javascript

 ``

Output

`9 2`

Time Complexity: O(log(log10(n))
Auxiliary Space: O(1)

Important note: log10() is a mathematical function present in math.h header file. It returns log base 10 value of the passed parameter to log10() function.

#### Approach 3: Using string operation to_string

First converting number to string and then first char of string and last character of string – ‘0’ is our ans.

## C++

 `#include ``using` `namespace` `std;` `int` `main() {` `    ``int` `n = 34356;``      ``string s = to_string(n);``      ``int` `first_digit = s.front() - ``'0'``;``      ``int` `last_digit = s.back() - ``'0'``;``      ``cout<<``"First digit of "``<

## Java

 `import` `java.util.*;` `public` `class` `Main {``    ``public` `static` `void` `main(String[] args) {``        ``int` `n = ``34356``;``        ``String s = Integer.toString(n);``        ``int` `first_digit = s.charAt(``0``) - ``'0'``;``        ``int` `last_digit = s.charAt(s.length() - ``1``) - ``'0'``;``        ``System.out.println(``"First digit of "` `+ n + ``" is "` `+ first_digit);``        ``System.out.println(``"Last digit of "` `+ n + ``" is "` `+ last_digit);``    ``}``}`

## Python3

 `# Python program to extract first and last digits of a number``# including comments and no empty lines``# take an integer input``n ``=` `34356` `# convert the integer to string``s ``=` `str``(n)` `# extract first and last digits from the string``first_digit ``=` `int``(s[``0``])``last_digit ``=` `int``(s[``-``1``])` `# print the results``print``(``"First digit of"``, n, ``"is"``, first_digit)``print``(``"Last digit of"``, n, ``"is"``, last_digit)`

## C#

 `using` `System;` `public` `class` `GFG{` `    ``static` `public` `void` `Main (){``        ``int` `n = 34356;``        ``string` `s = n.ToString();``        ``int` `first_digit = s[0] - ``'0'``;``        ``int` `last_digit = s[s.Length - 1] - ``'0'``;``        ``Console.WriteLine(``"First digit of {0} is {1}"``, n, first_digit);``        ``Console.WriteLine(``"Last digit of {0} is {1}"``, n, last_digit);``    ``}``}`

## Javascript

 `let n = 34356;` `let s = n.toString();``let first_digit = parseInt(s.charAt(0));``let last_digit = parseInt(s.charAt(s.length-1));``console.log(``"First digit of "` `+ n + ``" is "` `+ first_digit);``console.log(``"Last digit of "` `+ n + ``" is "` `+ last_digit);`

Output

```First digit of 34356 is 3
Last digit of 34356 is 6```

Time Complexity: O(n)
Auxiliary Space: O(n)

My Personal Notes arrow_drop_up