CUSIP: Difference between revisions
Content added Content deleted
m (→{{header|Quackery}}: tidy) |
Alextretyak (talk | contribs) (Added 11l) |
||
Line 49: | Line 49: | ||
* [[Validate_International_Securities_Identification_Number|ISIN]] |
* [[Validate_International_Securities_Identification_Number|ISIN]] |
||
<br> |
<br> |
||
=={{header|11l}}== |
|||
{{trans|Python}} |
|||
<lang 11l>F cusip_check(=cusip) |
|||
I cusip.len != 9 |
|||
X ValueError(‘CUSIP must be 9 characters’) |
|||
cusip = cusip.uppercase() |
|||
V total = 0 |
|||
L(i) 8 |
|||
V v = 0 |
|||
V c = cusip[i] |
|||
I c.is_digit() |
|||
v = Int(c) |
|||
E I c.is_alpha() |
|||
V p = c.code - ‘A’.code + 1 |
|||
v = p + 9 |
|||
E I c == ‘*’ |
|||
v = 36 |
|||
E I c == ‘@’ |
|||
v = 37 |
|||
E I c == ‘#’ |
|||
v = 38 |
|||
I i % 2 != 0 |
|||
v *= 2 |
|||
total += v I/ 10 + v % 10 |
|||
V check = (10 - (total % 10)) % 10 |
|||
R String(check) == cusip.last |
|||
V codes = [‘037833100’, |
|||
‘17275R102’, |
|||
‘38259P508’, |
|||
‘594918104’, |
|||
‘68389X106’, |
|||
‘68389X105’] |
|||
L(code) codes |
|||
print(code‘: ’(I cusip_check(code) {‘valid’} E ‘invalid’))</lang> |
|||
{{out}} |
|||
<pre> |
|||
037833100: valid |
|||
17275R102: valid |
|||
38259P508: valid |
|||
594918104: valid |
|||
68389X106: invalid |
|||
68389X105: valid |
|||
</pre> |
|||
=={{header|360 Assembly}}== |
=={{header|360 Assembly}}== |