torus711 のアレ

主に競技プログラミングの問題について書きます.PC 以外だと数式が表示されないかもしれないです

AtCoder Beginner Contest 176, B : Multiple of 9

問題概要

 整数 $N$ は $9$ の倍数か?
 なお,整数の各桁の和が $9$ の倍数であるとき,その整数は $9$ の倍数である.

制約

  • $0 \leq N \leq 10^{ 200{,}000}$

解法

 問題文の通りの判定方法をナイーブに実装すれば答えが求まります.または,多倍長整数を使える言語であれば,入力を多倍長整数として読んでそのまま判定できます.

コード

main = getLine >>= putStrLn . which "Yes" "No" . ( == 0 ) . ( `mod` 9 ) . sum . map digitToInt
main = readInteger >>= putStrLn . which "Yes" "No" . ( == 0 ) . ( `mod` 9 )