Program C untuk Menampilkan Nomor Armstrong Di Antara Dua Interval

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.

Artikel yang menarik...