БлогNot. Счастливое число - не "счастливый билет" :)

Счастливое число - не "счастливый билет" :)

Счастливое число - это не то, что считали раньше на счастливых билетиках с 6-значными номерами (ныне постепенно исчезающих).

Это - вот что, то есть, находим сумму квадратов цифр числа, заменяем ей исходное число, а потом повторяем процесс, пока не останется единица (тогда число счастливое) или что-то другое (тогда не счастливое).

Например, число 67001 счастливое потому, что 62+72+12=86, а 82+62=100, которое уж точно счастливо.

Кстати, если число счастливое, то и все члены его последовательности счастливы и наоборот. Кроме того, несчастливые числа склонны зацикливаться на последовательности остатков 4, 16, 37, 58, 89, 145, 42, 20, 4 и т.д., например, для числа 128 имеем цепочку
12+22+82 = 69,
62+92 = 117,
12+12+72 = 51,
52+12 = 26,
22+62 = 40,
42+02 = 16,
12+62 = 37,
32+72 = 58,
52+82 = 89,
82+92 = 145,
12+42+52 = 42,
42+22 = 20,
22+02 = 4
и дальше всё ясно :)

Вот этот код будет выводить последовательность A007770 (счастливых чисел) нужной длины size (или пока не зависнет браузер). Поэтому пишем числа просто старым добрым методом document.write, который, вообще-то, использовать не надо.

Просто мне понадобилось счастливое число побольше, чем приводится в сетевых источниках. Время выполнения кода может составить и десятки секунд при большом значении size. Сохранить код следует как обычный файл .html

<script type="text/javascript">
function happy(number) {
 var m, digit ;
 var cycle = [] ;
 while (number != 1 && cycle[number] !== true) {
  cycle[number] = true;
  summ = 0;
  while (number > 0) {
   digit = number % 10 ;
   summ += digit * digit;
   number = (number  - digit) / 10;
  }
  number = summ;
 }
 return (number == 1);
}
 
var number = 1,
    count = 0,
    size = 10000; //длина последовательности
while (count < size) {
 if (happy(number)) {
  document.write (number + '<br>');
  count++;
 }
 number++;
}
</script>
<noscript>Извините, Javascript отключён или недоступен в вашем браузере</noscript>

 Первые 10000 счастливых чисел, файл .txt в архиве .zip (24 Кб)

03.10.2017, 22:48 [2610 просмотров]


теги: javascript числа

К этой статье пока нет комментариев, Ваш будет первым