Bir sayının basamaklarındaki tüm rakamlarının sayı değerlerinin , sayının basamak sayısı kadar kuvveti alınıp toplanıldığında elde edilen sayı, sayının kendisine eşitse bu sayıya “Armstrong sayısı” denir.
Bu örnekte, C programlama dilinde kullanıcı tarafından girilen bir tamsayının Armstrong numarası olup olmadığını kontrol etmeyi öğreneceksiniz.
Örnek:
153 ⇒
13+53+33=1+125+27 = 153
1634 ⇒
14+64+34+44=1+1296+81+256 = 1634
54748 ⇒
55+45+75+45+85=3125+1024+16807+1024+32768 = 54748
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #include <math.h> #include <stdio.h> int main() { int sayi, orjinalSayi, kalan, n = 0; float sonuc = 0.0; printf("Sayı Gir : "); scanf("%d", &sayi); orjinalSayi = sayi; // store the number of digits of num in n for (orjinalSayi = sayi; orjinalSayi != 0; ++n) { orjinalSayi /= 10; } for (orjinalSayi = sayi; orjinalSayi != 0; orjinalSayi /= 10) { kalan = orjinalSayi % 10; // store the sum of the power of individual digits in result sonuc += pow(kalan, n); } // if num is equal to result, the number is an Armstrong number if ((int)sonuc == sayi) printf("%d Armstrong sayıdır.", sayi); else printf("%d Armstrong sayı değildir.", sayi); return 0; } |
İlginizi Çekebilir: C Dili Örnekleri
Ekran Çıktısı:

Yorum Yap