Armstrong Number (C)
C Program yang memeriksa apakah angka yang dimasukkan oleh pengguna adalah armstrong number atau bukan. Angka armstrong (armstrong number) jika angka tersebut sama dengan jumlah hasil digit yang dipangkatkan jumlah digit angka tersebut.
Contoh:
- 5 = 5^1 (1 digit maka pangkat 1) = 5
- 153 = 1^3 + 5^3 + 3^3 (pangkat 3) = 1 + 125 + 27
- 1634 = 1^4 +6^4 +3^4 +4^4 (pangkat 4) = 1 + 1296 + 81 + 256
- dan seterusnya
#include <stdio.h>
int pangkat(int, int);
int main(){
int angka, total = 0, temp, digit, jmldigit = 0;
printf("Masukkan angka :\n");
scanf("%d",&angka);
temp = angka;
while(temp != 0){
jmldigit++; //menghitung jumlah digit
temp=temp/10;
}
temp = angka;
while(temp !=0){
digit = temp%10; // Menjumlahkan pangkat masing masing digit
total=total+pangkat(digit,jmldigit);
temp = temp/10;
}
if (angka == total) printf("%d adalah angka armstrong.\n", angka);
else printf("%d bukan angka armstrong.\n", angka);
return 0;
}
int pangkat(int angka, int pangkat){
int total=1; //Pangkatkan masing masing digit
for(int i = 1;i<=pangkat;i++){
total = total * angka;
}
return total;
}