아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

신용카드 번호 판별

면접 대비

시간 제한1초메모리 제한128 MB

요약
16자리 카드 번호마다 룬 체크섬을 적용해, 오른쪽에서 짝수 번째 자리를 두 배로 하고 자릿수를 더한 합이 10으로 나누어지면 T, 아니면 F를 출력한다.
난이도

쉬움10점 중 2점

유형
구현, 문자열, 수학
정답자
아직 제출이 없습니다

문제

신용카드 번호는 16자리 숫자다. 얼핏 보면 아무 숫자나 늘어놓은 것 같지만, 번호가 제대로 입력됐는지 확인하는 규칙이 그 안에 들어 있다. 그 규칙이 Luhn 공식이고, 내용은 다음과 같다.

  1. 맨 오른쪽 자리부터 1번, 2번 순서로 센다. 홀수 번째 자리의 숫자는 그대로 두고, 짝수 번째 자리의 숫자는 2배로 만든다.
  2. 2배로 만든 값이 10 이상이면 그 값의 각 자리 숫자를 더한 값으로 바꾼다.
  3. 이렇게 얻은 16개 값을 모두 더한다.
  4. 합이 10으로 나누어떨어지면 유효한 번호이고, 그렇지 않으면 유효하지 않은 번호다.

신용카드 번호가 여러 개 주어진다. 각 번호가 유효한지 판정하는 프로그램을 작성하라.

입력

첫째 줄에 테스트 케이스의 수 TT (1≤T≤10001 \le T \le 1000)가 주어진다.

둘째 줄부터 TT개의 줄에 걸쳐 신용카드 번호가 한 줄에 하나씩 주어진다. 각 번호는 16자리 숫자이고, 맨 앞자리가 0일 수도 있다.

출력

각 신용카드 번호에 대해 유효하면 T를, 유효하지 않으면 F를 한 줄에 하나씩 출력한다.

예제4

  1. 예제 1

    입력
    3
    2720992711828767
    3444063910462763
    6011733895106094
    
    예상 출력
    T
    F
    T
    
  2. 예제 2

    입력
    1
    0000000000000000
    
    예상 출력
    T
    
  3. 예제 3

    입력
    1
    9999999999999999
    
    예상 출력
    F
    
  4. 예제 4

    입력
    2
    0000000000000091
    0000000000000019
    
    예상 출력
    T
    F