diff --git "a/\320\273\321\203\320\275\320\260.php" "b/\320\273\321\203\320\275\320\260.php" new file mode 100644 index 0000000..80aafa0 --- /dev/null +++ "b/\320\273\321\203\320\275\320\260.php" @@ -0,0 +1,24 @@ +function isValidCardNumber($cardNumber) { + // Отразить цифры в номере карты с конца к началу + $cardNumber = strrev($cardNumber); + + // Сложите все цифры вместе (в том числе те, что не были умножены на 2) + $sum = 0; + for ($i = 0; $i < strlen($cardNumber); $i++) { + $digit = $cardNumber[$i]; + + // Начиная с второй справа цифры (т.е. с нечетных позиций), умножьте каждую цифру на 2 + if ($i % 2 == 1) { + $digit *= 2; + if ($digit > 9) { + // Если результат больше 9, то вычтите 9 из него + $digit -= 9; + } + } + + $sum += $digit; + } + + // Если сумма кратна 10, то номер карты валиден + return $sum % 10 == 0; +}