Data update
This commit is contained in:
parent
ed705008a8
commit
0df55f9f24
2196 changed files with 32999 additions and 3075 deletions
34
Task/CUSIP/MiniScript/cusip.mini
Normal file
34
Task/CUSIP/MiniScript/cusip.mini
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
isCusip = function(s)
|
||||
if s.len != 9 then return false
|
||||
sum = 0
|
||||
for i in range(0, 7)
|
||||
c = s[i]
|
||||
v = 0
|
||||
if c >= "0" and c <= "9" then
|
||||
v = code(c) - 48
|
||||
else if c >= "A" and c <= "Z" then
|
||||
v = code(c) - 55
|
||||
else if c == "*" then
|
||||
v = 36
|
||||
else if c == "@" then
|
||||
v = 37
|
||||
else if c == "#" then
|
||||
v = 38
|
||||
else
|
||||
return false
|
||||
end if
|
||||
if i%2 == 1 then v *= 2 // check if odd as using 0-based indexing
|
||||
sum += floor(v/10) + v%10
|
||||
end for
|
||||
return code(s[8]) - 48 == (10 - (sum%10)) % 10
|
||||
end function
|
||||
|
||||
candidates = [
|
||||
"037833100", "17275R102", "38259P508",
|
||||
"594918104", "68389X106", "68389X105",
|
||||
]
|
||||
for candidate in candidates
|
||||
s = "valid"
|
||||
if not isCusip(candidate) then s = "invalid"
|
||||
print candidate + " -> " + s
|
||||
end for
|
||||
Loading…
Add table
Add a link
Reference in a new issue