Dalam contoh ini, Anda akan belajar mencari semua bilangan Armstrong di antara dua bilangan bulat yang dimasukkan oleh pengguna.
Untuk memahami contoh ini, Anda harus memiliki pengetahuan tentang topik pemrograman C berikut ini:
- Pernyataan C if… else
- C untuk Loop
Bilangan bulat positif disebut bilangan Armstrong (berorde n) jika
abcd… = an + bn + cn + dn +
Dalam kasus bilangan Armstrong yang terdiri dari 3 digit, jumlah pangkat tiga dari setiap digit sama dengan bilangan itu sendiri. Misalnya, 153 adalah bilangan Armstrong karena
153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3
Sebelum mencoba program ini, pelajari cara memeriksa apakah bilangan bulat adalah bilangan Armstrong atau bukan.
Nomor Armstrong Antara Dua Integer
#include #include int main() ( int low, high, number, originalNumber, rem, count = 0; double result = 0.0; printf("Enter two numbers(intervals): "); scanf("%d %d", &low, &high); printf("Armstrong numbers between %d and %d are: ", low, high); // iterate number from (low + 1) to (high - 1) // In each iteration, check if number is Armstrong for (number = low + 1; number < high; ++number) ( originalNumber = number; // number of digits calculation while (originalNumber != 0) ( originalNumber /= 10; ++count; ) originalNumber = number; // result contains sum of nth power of individual digits while (originalNumber != 0) ( rem = originalNumber % 10; result += pow(rem, count); originalNumber /= 10; ) // check if number is equal to the sum of nth power of individual digits if ((int)result == number) ( printf("%d ", number); ) // resetting the values count = 0; result = 0; ) return 0; )
Keluaran
Masukkan dua angka (interval): 200 2000 angka Armstrong antara 200 dan 2000 adalah: 370 371 407 1634
Dalam program ini, loop luar diiterasi dari (rendah + 1) ke (tinggi - 1) . Dalam setiap iterasi, diperiksa apakah bilangan tersebut merupakan bilangan Armstrong atau bukan.
Di dalam loop luar, jumlah digit bilangan bulat dihitung pertama kali dan disimpan di count
. Dan, jumlah pangkat dari setiap digit disimpan dalam variabel hasil.
Jika angkanya sama dengan result
, angkanya adalah bilangan Armstrong.
Catatan: Anda perlu mengatur ulang hitungan dan hasil menjadi 0 di setiap iterasi loop luar.