当前你的浏览器版本过低,网站已在兼容模式下运行,兼容模式仅提供最小功能支持,网站样式可能显示不正常。
请尽快升级浏览器以体验网站在线编辑、在线运行等功能。
信用卡号遵循下面的模式。一个信用卡号必须是13到16位的整数。他的开头必须是:
·4,指Visa卡
·6,指Master卡
·37,指American Express卡
·6,指Discover卡
在1954年。IBM的Hans Luhn提出一种算法,该算法可以验证信用卡号的有效性。这个算法在确定输出的卡号是否正确,或者这张信用卡是否被扫描仪正确扫描方面是非常有用的。遵循这个合法性的检测,可以生成所有的信用卡号,通常称之为Luhn检测或者Mod 10检测,可以如下描述(为了方便解释,假设卡号为4388576018402626):
(1) 从右到左对偶数位的数字翻倍。如果对某个数字翻倍之后的结果是一个两位数,那么就将这两位加在一起得到一位数。
例: 2*2=4 6*2=12(1+2=3)
2*2=4 5*2=10(1+0=1)
4*2=8 8*2=16(1+6=7)
1*2=2 4*2=8
(2) 现在将第一步得到的所有一位数相加。
4+4+8+2+3+1+7+8=37
(3) 将卡号里从右到左在奇数位上的所有数字相加。
6+6+0+8+0+7+8+3=38
(4) 将第二步和第三步得到的结果相加。
37+38=75
(5) 如果第四部得到的结果能被10整除,那么卡号是合法的;否则,卡号是不合法的
4388576018402626
不合法
时间上限 | 内存上限 |
1000 MS | 128 MB |