Validate International Securities Identification Number: Difference between revisions
Content added Content deleted
(Added XPL0 example.) |
Alextretyak (talk | contribs) (Added 11l) |
||
Line 63: | Line 63: | ||
<br> |
<br> |
||
<hr> |
<hr> |
||
=={{header|11l}}== |
|||
{{trans|Python}} |
|||
<lang 11l>F check_isin(a) |
|||
I a.len != 12 |
|||
R 0B |
|||
[Int] s |
|||
L(c) a |
|||
I c.is_digit() |
|||
I L.index < 2 |
|||
R 0B |
|||
s.append(c.code - 48) |
|||
E I c.is_uppercase() |
|||
I L.index == 11 |
|||
R 0B |
|||
V (d, m) = divmod(c.code - 55, 10) |
|||
s [+]= [d, m] |
|||
E |
|||
R 0B |
|||
V v = sum(s[((len)-1..0).step(-2)]) |
|||
L(=k) s[((len)-2..).step(-2)] |
|||
k = 2 * k |
|||
v += I k > 9 {k - 9} E k |
|||
R v % 10 == 0 |
|||
print([‘US0378331005’, ‘US0373831005’, ‘U50378331005’, ‘US03378331005’, |
|||
‘AU0000XVGZA3’, ‘AU0000VXGZA3’, ‘FR0000988040’].map(s -> check_isin(s)))</lang> |
|||
{{out}} |
|||
<pre> |
|||
[1B, 0B, 0B, 0B, 1B, 1B, 1B] |
|||
</pre> |
|||
=={{header|360 Assembly}}== |
=={{header|360 Assembly}}== |