Bilangan bulat positif disebut bilangan Armstrong (urutan n) jika:

abcd... = an + bn + cn + dn + ...

Dalam kasus bilangan Armstrong 3 digit, jumlah pangkat tiga dari setiap digit sama dengan bilangan itu sendiri. Sebagai contoh, 153 adalah nomor Armstrong karena:

153 = 1*1*1 + 5*5*5 + 3*3*3

Demikian pula, 1634 adalah nomor Armstrong karena:

1634 = 1*1*1*1 + 6*6*6*6* + 3*3*3*3 + 4*4*4*4

Sebelum mencoba program ini, kunjungi Program JavaScript untuk Memeriksa Nomor Armstrong.


Contoh: Nomor Armstrong di Antara Dua Interval

// program to find Armstrong number between intervals

// take an input
const lowNumber = parseInt(prompt('Enter a positive low integer value: '));
const highNumber = parseInt(prompt('Enter a positive high integer value: '));

console.log ('Armstrong Numbers:');

// looping through lowNumber to highNumber
for (let i = lowNumber; i <= highNumber; i++) {

    // converting number to string 
    let numberOfDigits = i.toString().length;

    let sum = 0;

    // create a temporary variable
    let temp = i;

    /* loop through a number to find if 
    a number is an Armstrong number */
    while (temp > 0) {

        let remainder = temp % 10;
        sum += remainder ** numberOfDigits;
        // removing last digit from the number
        temp = parseInt(temp / 10); // convert float into integer
    }
 
    if (sum == i) {
        console.log(i);
    }
}

Keluaran

Enter a positive low integer value: 8
Enter a positive high integer value: 500
Armstrong Numbers: 
8
9
153
370
371
407

Dalam program di atas, pengguna diminta untuk memasukkan dua bilangan bulat. Salah satunya adalah bilangan bulat interval yang lebih rendah dan yang lainnya adalah nilai bilangan bulat yang lebih tinggi.

Itu parseInt() mengonversi nilai string numerik menjadi nilai integer.

Itu for loop digunakan untuk mengulang melalui dua angka yang disediakan oleh pengguna.

Itu toString() metode digunakan untuk mengubah angka menjadi string. Dan length properti digunakan untuk mencari panjang string. Oleh karena itu, dalam kasus ini, length memberikan total digit nomor tersebut.

let numberOfDigits = i.toString().length;

Yang pertama for iterasi perulangan (i = 8),

  1. Angka yang lebih rendah yang dimasukkan oleh pengguna disimpan dalam variabel sementara temp.
  2. SEBUAH while loop digunakan untuk mengulang nomor.
    1. Itu operator modulus % digunakan untuk mendapatkan setiap digit angka. Saat angka dibagi 10, sisanya adalah digit terakhir. Pada iterasi pertama, 8 % 10 memberi 8.
    2. Sisanya dikalikan dengan jumlah digit di bilangan itu (di sini 1) dan jumlahnya dihitung.
    3. Digit dibagi dengan 10 untuk menghapus digit terakhir, yaitu 8 / 10 memberikan 0.
  3. Akhirnya, jumlah tersebut dibandingkan dengan jumlah yang dimasukkan oleh pengguna. Jika jumlah dan angkanya sama, bilangan Armstrong ditampilkan.

Perulangan berlanjut untuk semua angka yang berada di antara batas bawah dan atas yang disediakan oleh pengguna. Dalam contoh di atas, loop dijalankan dari 8 untuk 500.