Saturday , 21 April 2018
Latest Posts
Home » Class 12 » Java Program to find check digit of an IMEI Number

# Java Program to find check digit of an IMEI Number

#### Question:

Write a program in Java to input the first 14 digits of an IMEI number and find the check (last) digit of it.

The IMEI (15 decimal digits: 14 digits plus a check digit) includes information on the origin, model, and serial number of the device.

The check digit (x) is obtained by computing the sum of digits then computing 9 times that value modulo 10.

In algorithm form:

1. Compute the sum of the digits (52 in this case).
2. Multiply the sum by 9 (9*52 = 468).
3. Divide the result by 10 and note down the remainder (468 % 10)
4. The last digit, 8, is the check digit.

#### Programming Code:

```/**
* The class IMEI_CheckDig inputs the first 14 digits of an IMEI number
* and finds the last check digit of the IMEI code
* @author : www.javaforschool.com
* @Program Type : BlueJ Program - Java
*/

import java.io.*;
class IMEI_CheckDig
{
int sumDig(int n) // Function for finding and returning sum of digits of a number
{
int a = 0;
while(n>0)
{
a = a + n%10;
n = n/10;
}
return a;
}

public static void main(String args[])throws IOException
{
IMEI_CheckDig ob = new IMEI_CheckDig();

System.out.print("Enter first 14 digits of IMEI code : ");
long n = Long.parseLong(br.readLine()); // 14 digits cannot be stored in 'int' data type

String s = Long.toString(n); // Converting the number into String for finding length
int l = s.length();

if(l!=14) // If length is not 14 then IMEI is Invalid
System.out.println("Output : Invalid Input");
else
{
int d = 0, sum = 0;
for(int i=14; i>=1; i--)
{
d = (int)(n%10);

if(i%2 == 0)
{
d = 2*d; // Doubling every alternate digit
}

sum = sum + ob.sumDig(d); // Finding sum of the digits

n = n/10;
}
System.out.println("Sum = "+sum);

int dig = (9*sum)%10; // Finding the check digit
System.out.println("Output : The check digit = "+dig);

}
}
}```

#### Output:

Enter first 14 digits of IMEI code : 49015420323751
Sum = 52
Output : The check digit = 8

## ISC 2017 Computer Science Solution + Examiner’s Comments – From the Council

Solution of ISC 2017 Computer science Paper as provided by the Council for the Indian School Certificate Examinations.

1. Please keep on posting such interesting programs….thank you

2. Sir on executing this program this error is coming and i am not able to remove this please help

at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Long.parseLong(Long.java:403)
at java.lang.Long.parseLong(Long.java:461)
at IMEI_CheckDig.main(IMEI_CheckDig.java:21)

• The program is working fine. Just check whether you have copied it correctly.