login

Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).

A231963
Concatenate n with its UPC check digit, a(n) = 10*n + A237042(n).
1
17, 24, 31, 48, 55, 62, 79, 86, 93, 109, 116, 123, 130, 147, 154, 161, 178, 185, 192, 208, 215, 222, 239, 246, 253, 260, 277, 284, 291, 307, 314, 321, 338, 345, 352, 369, 376, 383, 390, 406, 413, 420, 437, 444, 451, 468, 475, 482, 499, 505, 512, 529, 536, 543, 550, 567, 574, 581
OFFSET
1,1
COMMENTS
Theoretically, a UPC check digit can be used with 1- or 2-digit numbers as well as numbers with more than 17 digits. There is probably no practical need for the former, while the latter would probably require a more robust error-detecting (if not error-correcting) mechanism.
However, the UPC check digit is a more robust mechanism than a simple digital root would be, as it guards against dyslexia when a seemingly scannable UPC code does not scan and the human operator has to type in the code (whether a cash register or a mobile scanner).
This is because to generate the check digit, the digits in the one's place, hundred's place, ten hundred's place, etc., are multiplied by 3. Thus, for example, 13 gives 0 for a check digit while 31 gives 4 for a check digit.
Some manufacturers that have or might have UPCs ending in the numbers shown above include H. J. Heinz (013000) and the Hershey Company (068000).
As a rule of thumb, the terms mostly advance in steps of 7, sometimes 17.
REFERENCES
David Salomon, Coding for Data and Computer Communications. New York: Springer (2006): 41 - 42.
LINKS
Eric Weisstein's World of Mathematics, UPC.
FORMULA
a(n) = 10n + c(n), where c(n) = A237042(n) = -( (Sum_{i=1..floor(L/2)} d(2i-1)) + 3*(Sum_{j=0..floor(L/2)} d(2j)) ) mod 10, where L is how many digits n has, d(L - 1) is the most significant digit of n, ..., and d(0) is the one's place digit.
EXAMPLE
a(13) = 130 because 1 * 1 + 3 * 3 = 10, giving a check digit of 0.
a(14) = 147 because 1 * 1 + 4 * 3 = 13, and -13 = 7 mod 10.
a(15) = 154 because 1 * 1 + 5 * 3 = 16, and -16 = 4 mod 10.
PROG
(PARI) a(n) = 10*n + vecsum(digits(n, 100)*31\-10) % 10; \\ Kevin Ryde, Oct 03 2023
CROSSREFS
KEYWORD
nonn,base,easy
AUTHOR
Alonso del Arte, Nov 15 2013
STATUS
approved