Program C ++ untuk Memeriksa Nomor Armstrong

Integer positif disebut bilangan Armstrong (orde n) jika

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

Dalam kasus jumlah Armstrong 3 digit, jumlah kubus dari setiap digit sama dengan angka itu sendiri. Misalnya, 153 adalah angka Armstrong karena

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

Contoh: Periksa Armstrong Jumlah 3 Digit

#include 
using namespace std;

int main() {
    int num, originalNum, remainder, result = 0;
    cout << "Enter a three-digit integer: ";
    cin >> num;
    originalNum = num;

    while (originalNum != 0) {
        // remainder contains the last digit
        remainder = originalNum % 10;
        
        result += remainder * remainder * remainder;
        
        // removing last digit from the orignal number
        originalNum /= 10;
    }

    if (result == num)
        cout << num << " is an Armstrong number.";
    else
        cout << num << " is not an Armstrong number.";

    return 0;
}

Keluaran

Enter a positive integer: 371
371 is an Armstrong number.

Dalam program ini, kita beralih melalui loop sementara hingga nomor asli adalah 0.

Di setiap iterasi dari loop, kubus dari digit terakhir orignalNum ditambahkan ke hasil.

remainder = originalNum % 10;        
result += remainder * remainder * remainder;

Dan, digit terakhir dihapus dari orignalNum.

Ketika loop berakhir, jumlah kubus digit individu disimpan di hasil.


Contoh: Periksa Jumlah Armstrong dari n Digit

#include 
#include 

using namespace std;

int main() {
   int num, originalNum, remainder, n = 0, result = 0, power;
   printf("Enter an integer: ");
   scanf("%d", &num);

   originalNum = num;

   while (originalNum != 0) {
      originalNum /= 10;
      ++n;
   }
   originalNum = num;

   while (originalNum != 0) {
      remainder = originalNum % 10;

      // pow() returns a double value
      // round() returns the equivalent int
      power = round(pow(remainder, n));
      result += power;
      originalNum /= 10;
   }

   if (result == num)
      cout << num << " is an Armstrong number.";
   else
      cout << num << " is not an Armstrong number.";
   return 0;
}

Keluaran

Enter an integer: 1634
1634 is an Armstrong number.

Dalam program ini, jumlah digit dari angka yang dimasukkan dihitung terlebih dahulu dan disimpan di n.

Dan, itu pow() fungsi menghitung kekuatan masing - masing digit dalam setiap iterasi while lingkaran.