Data update
This commit is contained in:
parent
4bb20c9b71
commit
cbaf4c4b64
12390 changed files with 318560 additions and 27248 deletions
33
Task/CUSIP/Pluto/cusip.pluto
Normal file
33
Task/CUSIP/Pluto/cusip.pluto
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
local function is_cusip(s)
|
||||
if #s != 9 then return false end
|
||||
local sum = 0
|
||||
for i = 1, 8 do
|
||||
local c = s[i]
|
||||
local v = switch true do
|
||||
case c >= '0' and c <= '9' -> c:byte() - 48
|
||||
case c >= 'A' and c <= 'Z' -> c:byte() - 55
|
||||
case c == "*" -> 36
|
||||
case c == "@" -> 37
|
||||
case c == "#" -> 38
|
||||
default -> nil
|
||||
end
|
||||
if !v then return false end
|
||||
if i % 2 == 0 then v = v * 2 end -- check if even as using 1-based indexing
|
||||
sum += v // 10 + v % 10
|
||||
end
|
||||
return s[9]:byte() - 48 == (10 - (sum % 10)) % 10
|
||||
end
|
||||
|
||||
local candidates = {
|
||||
"037833100",
|
||||
"17275R102",
|
||||
"38259P508",
|
||||
"594918104",
|
||||
"68389X106",
|
||||
"68389X105"
|
||||
}
|
||||
|
||||
for candidates as candidate do
|
||||
local b = is_cusip(candidate) ? "correct" : "incorrect"
|
||||
print($"{candidate} -> {b}")
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue