JavaScriptでハッピー数を探す旅

幸せならOKです

この記事を三行にまとめると

毎日頭ハッピーセット
幸せならOKです
1982年11月18日はハッピー数じゃない
この記事は以下の動画の中に出てきたサンプルコードを載せたものです。コピペなどが必要なときに使ってください。





HTMLとCSS

<div>
  <input type="number" id="number">
  <button type="button" id="start">検証開始</button>
</div>
<div id="result"></div>

<style>
  * { font-size: 24px; font-family: 'メイリオ' }
  body { text-align: center }
  input, button { padding: 5px }
</style>



入力された数字がハッピー数か判定する

number = document.getElementById('number');
start = document.getElementById('start');
result = document.getElementById('result');

start.onclick = function() {
  result.innerText = '';
  num = number.value;
  answers = [];

  while(true) {
    lists = String(num).split('');

    sum = lists.reduce(function(prev, current){
      return Number(prev) + Number(current ** 2);
    }, 0);

    if(answers.includes(sum)) {
      result.innerText += 'ハッピー数じゃないです';
      break;
    }

    result.innerText += num + 'の各桁の2乗の合計は' + sum + '\n';

    if(sum == 1) {
      result.innerText += 'ハッピー数です!';
      break;
    }

    answers.push(sum);
    num = sum;
  }
}
 もしかしたら何か関連しているかも? 
 質問や感想などお気軽にコメントしてください