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),
- Angka yang lebih rendah yang dimasukkan oleh pengguna disimpan dalam variabel sementara
temp
. - SEBUAH
while
loop digunakan untuk mengulang nomor.- Itu operator modulus
%
digunakan untuk mendapatkan setiap digit angka. Saat angka dibagi 10, sisanya adalah digit terakhir. Pada iterasi pertama,8 % 10
memberi 8. - Sisanya dikalikan dengan jumlah digit di bilangan itu (di sini 1) dan jumlahnya dihitung.
- Digit dibagi dengan 10 untuk menghapus digit terakhir, yaitu
8 / 10
memberikan 0.
- Itu operator modulus
- 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.