

A237042


UPC check digit for n.


1



7, 4, 1, 8, 5, 2, 9, 6, 3, 9, 6, 3, 0, 7, 4, 1, 8, 5, 2, 8, 5, 2, 9, 6, 3, 0, 7, 4, 1, 7, 4, 1, 8, 5, 2, 9, 6, 3, 0, 6, 3, 0, 7, 4, 1, 8, 5, 2, 9, 5, 2, 9, 6, 3, 0, 7, 4, 1, 8, 4, 1, 8, 5, 2, 9, 6, 3, 0, 7, 3, 0, 7, 4, 1, 8, 5, 2, 9, 6, 2, 9, 6, 3, 0, 7, 4, 1, 8, 5, 1, 8, 5, 2, 9, 6, 3
(list;
graph;
refs;
listen;
history;
text;
internal format)



OFFSET

1,1


COMMENTS

The UPC check digit is calculated much like a base 10 digital root, except that the digits in the ones place, hundreds place, ten thousands place, etc., are multiplied by 3, before the final step of multiplying the whole sum by 1 prior to taking it modulo 10. Thus the UPC check digit gives the impression of advancing in steps of 7 with each increment of 1 except most of the times when the last digit of n goes from 9 to 0.


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) = ( (Sum_{i=1..floor(L/2)} d(2i1)) + 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 ones place digit.


EXAMPLE

a(13) = 0 because 1 * 1 + 3 * 3 = 10, giving a check digit of 0.
a(14) = 7 because 1 * 1 + 4 * 3 = 13, and 13 = 7 mod 10.
a(15) = 4 because 1 * 1 + 5 * 3 = 16, and 16 = 4 mod 10.


PROG

(PARI) a(n) = vecsum(digits(n, 100)*31\10) % 10; \\ Kevin Ryde, Oct 03 2023


CROSSREFS



KEYWORD

nonn,easy,base


AUTHOR



STATUS

approved



