クレジットカード番号に誤りがないか確認するため,Luhnアルゴリズムが用いられている.このアルゴリズムは,入力された番号が「正しい」か「間違っている」かを,以下の手順で求める.

  1. 右端から数えて偶数番目の数字をすべて2倍する
  2. 1.の計算の後,すべての数字の総和を求める.ただし,1.の処理で数字が2桁になった場合は,1桁目と2桁目の数字を足す.
  3. 求めた総和の1の位が0であれば「正しい」,そうでなければ「間違っている」と判定する

例えば,49927398716という番号が入力されたとき,

Luhnアルゴリズムの動作例

より$70$が求まるため,このカード番号は「正しい」と判定される.

問題

標準入力より100桁までのカード番号を読み取り, Luhnアルゴリズムで正当性を検証し, 正しければtrue,間違っていればfalseと標準出力に書き出すプログラムを作成せよ. 各表示の末尾には改行文字\nを付けること.

ただし,入力されるカード番号は$0$から$9$までの数字のみからなり,$1$文字以上$100$文字以下であると仮定してよい.

実行例

#は標準入力,>は標準出力を表す.

# 49927398716
> true
# 49927398714
> false
# 1982049058395830128494
> true

ヒント

カード番号を格納するデータ型を文字列にする

文字列(文字の配列)の扱い

ASCIIコード