Суть такая. В программу нужно вести первые 14 цифр imei, а она рассчитает по нехитрому алгоритму последнюю. Если она совпадёт с той, что в телефоне, то всё нормально, если нет - то аппарат левый.
Последняя цифра рассчитывается по такому алгоритму:
Calculation of CD (Luhn Check Digit):
Step 1: Double the values of the odd labelled digits D1, D3, ... D13.
Step 2: Add together the individual digits of all the seven numbers
obtained in Step 1, and then add this sum to the sum of all the even
labelled digits D2, D4, D6 ... D14 of the IMEI.
Step 3: If the number obtained in Step 2 ends in 0, then set CD to be
0. If the number obtained in Step 2 does not end in 0, then set CD to
be that number subtracted from the next higher number which does end
in 0.
Как бы его покрасивей реализовать?