ハーシャッド数が分からず、ググったはいいが解き方がわからなかった問題。
ハーシャッド数とは
例えば、195 は各位の和が 1 + 9 + 5 = 15 であり、15 は 195 の約数であるので 195 はハーシャッド数である
あ、なんか聞いたことあるような…?
博士の愛した数式だったかな?
解き方の解説
123456を全部足すと、21になる
ということで、まずは全部足す。
足した合計21で元の数123456を割ったあまりがぴったりだと、ハーシャッド数であるといえる。
とりあえず素直に一桁ずつ取り出す
まず、一の位しかない数字(=10未満の数字)はそのまま使える。
他をどうするのか。
さっきの123456を見てみると、実は
12345 = 123456 / 10
6 = 123456 % 10
ということがわかる。
これにより、一番左端の桁の数字を取り出すことができる。
つまり、再起関数を使ってすべての桁の数を取り出し、計算することができる。
文字列にしてしまえ!
JavaScriptだったらそうしていたかな…
ああ、そうすればよかった…