Кредитні картки
Limits: 2 sec., 256 MiB
Чи знали ви, що не всі номери кредитних карток є валідними? Для того, щоб уникнути хоча б частини помилок при введенні номерів кредитних карток, номери повинні задовільняти алгоритм Луна. Алгоритм Луна — це проста формула перевірки контрольної суми, котру використовують для валідації різноманітних ідентифікаційних номерів. Алгоритм працює наступним чином:
Дано певне додатнє число.
Помножимо кожну цифру на непарній позиції на 2 (тобто першу, третю і т.д.) і замінимо початкові цифри на ці результати. Якщо в результаті множення вийшло двоцифрове число, то впишемо обидві ці цифри.
Додамо разом усі цифри з числа, яке вийшло.
Якщо результат ділиться на 10 без остачі, то число з кроку 1 вважається валідним, в протилежному випадку це число не валідне.
Давайте глянемо як цей алгоритм працює на наступному прикладі:
Дано число 126789.
126789 \(\to\) 1\(\cdot\)2|2|6\(\cdot\)2|7|8\(\cdot\)2|9 \(\to\) 2|2|12|7|16|9 \(\to\) 22127169.
2+2+1+2+7+1+6+9 = 30.
30 ділиться на 10, а отже число 126789 валідне.
Зеник працює над валідатором номерів кредиток мастеркард для одного волонтерського фонду, проте в його код закрався баг і він просить вас написати таку ж програму. Вам буде дано номер кредитної карти і вам потрібно перевірити чи:
Цей номер є валідним згідно алгоритму Луна.
Цей номер має префікс
51,52,53,54або55.
Якщо обидві умови виконано, це валідний номер кредитки мастеркард. Сподіваємось, що ви кращий програміст ніж Зеник.
Input
Єдиний рядок містить номер кредитної картки мастеркард — рівно 16 цифр без пробілів.
Output
Якщо заданий номер задовільняє алгоритм Луна і має коректний префікс,
виведіть слово VALID. Інакше, виведіть слово
BAD.
Samples
| Input (stdin) | Output (stdout) |
|---|---|
| 5555555555554443 | BAD |
| Input (stdin) | Output (stdout) |
|---|---|
| 8888888888888888 | BAD |
| Input (stdin) | Output (stdout) |
|---|---|
| 5375411203491563 | VALID |
| Input (stdin) | Output (stdout) |
|---|---|
| 5168742063537207 | VALID |
| Input (stdin) | Output (stdout) |
|---|---|
| 5169330524195689 | VALID |
| Input (stdin) | Output (stdout) |
|---|---|
| 5168745606525191 | VALID |
Notes
Перший приклад не задовільняє алгоритм Луна.
Другий приклад задовільняє алгоритм Луна, проте не має корректного префіксу.
Долучайся до збору від Algotester на дрони для аеророзвідки за номером картки у прикладі 3!
Картки в прикладах 4-6 це картки фондів Сергія Притули, Мир і Ко, та Армія SOS. Кожна з цих організацій допомагає ЗСУ і ми будемо вдячні вам за донати цим організаціям :)
Submit a solution
| Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
|---|
| Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
|---|