Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Are the strings checksummed, though? In this case, you’d need to do math, but still keep them as strings...


The checksum calculation does not involve interpreting the whole multidigit number as an integer, so you don't need to parse the number; you're doing math on specific characters/digits only.


Wouldn't it in fact be a lot slower using an integer? Lots of divisions by 10, instead of just adding every byte.


https://en.wikipedia.org/wiki/Luhn_algorithm

There's exactly one division required.

(Implementing it using vector instructions is left as an exercise for the reader. A very elementary exercise, so I encourage you to try it if you're curious about SSE and such.)


Luhn's algorithm works on a digit string, not a single integer.


Checking divisibility by a known constant can be done in a better way than doing a division.

https://lemire.me/blog/2019/02/08/faster-remainders-when-the...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: