Tüm basamaklarındaki rakamların sayı değerlerinin küpleri toplamı, kendisine eşit olan sayılara "Armstrong sayı" denir. Diğer bir deyişle her bir basamağın o sayının basamak sayısı kadar üssü alınarak toplanmasıdır. Eğer toplam bu sayıyı veriyorsa o sayı Armstrong Sayıdır.
Bazı Armstrong sayıları: 0, 1, 2, 3, 153, 370, 407, 1634, 8208
Bazı Armstrong sayıları: 0, 1, 2, 3, 153, 370, 407, 1634, 8208
153 = 13 + 53 + 33
#include <stdio.h>
int pw(int, int);
int main()
{
int s, sonuc = 0, gecici, bdeger, basamak = 0;
printf("LUTFEN BIR SAYI GIRINIZ\n");
scanf("%d", &s);
gecici = s;
while (gecici != 0) {
basamak++;
gecici = gecici/10;
}
gecici = s;
while (gecici != 0) {
bdeger = gecici%10;
sonuc = sonuc + pw(bdeger, basamak);
gecici = gecici/10;
}
if (s == sonuc)
printf("%d ARMSTRONG SAYIDIR.\n", s);
else
printf("%d ARMSTRONG SAYI DEGILDIR.\n", s);
return 0;
}
int pw(int s, int r) {
int c, p = 1;
for (c = 1; c <= r; c++)
p = p*s;
return p;