# LH PK-Number Control Code

E. g., my personnel number is 5111 and the Letter is 'D'.

### Description

The control-codes 'ABCDEFGHIK' are mapped to the numbers 0-9 in the way:
```    A=1, B=2, C=3, D=4, E=5, F=6, G=7, H=8, I=9, K=0.
```
The control equation Lufthansa uses is the 137-code:
```    a1 + 3*a2 + 7*a3 + a4 + 3*a5 + 7*a6 + a7 = 0 (modulo 10)
```
So my number 005111 D has (a1,...,a7)=(0,0,5,1,1,1,4) which satisfies the equation.

When I joined the company, I calculated the equation from the numbers of some collegues assuming a modulo 10 code. As I saw the 137 pattern I knew I was correct. I was worried about the number of one person, as it does not fit. But it turns out that his number (equal his account) had been typed in wrong.

### References

• J. A. Gallian,
Error Detection Methods, ACM Computing Surveys, 28:3 (Sept. 1996) 504-517
• J. A. Gallian, ST. Winters,
Modular Arithmetic in the Marketplace, American Mathematical Monthly 95:6 (1988) 548-551
• Joerg Michael,
Mit Sicherheit, Pruefziffernverfahren auf Modulo-Basis, c't (Juli 1996) Heft 7, Seite 264
• W. Press, S. Teukolsky, W. Vetterling, B. Flannery,
Numerical Recipes in C, The Art of Scientific Computing (Second Edition)
http://nr.harvard.edu/nr/bookc.html (Online Version)
20.3 Cyclic Redundancy and Other Checksums 896-903
• Ralph-Hardo Schulz,
Codierungstheorie, VIEWEG VERLAG, 1991, ISBN: 3-528-06419-6

### Sources

How looks such a simple equation in your favorit script language? I tried some. The filter variants are reading lines from stdin and assume that the first word is a pk-number.

Torsten Sillke