Bu örnekte, kullanıcı tarafından girilen bir tamsayının Armstrong sayı olup olmadığını kontrol etmeyi öğreneceksiniz.
İlk örnek 3 basamaklı bir sayının Armstrong sayı olup olmadığını kontrol ederken, ikinci örneğimizde n basamaklı yani kullanıcının girdiği herhangi bir sayıya göre işlem yapmaktadır.
Pozitif bir tamsayı, Armstrong numarası olarak adlandırılır (n sırasına göre)
1 2 3 | abcd... = a<sup>n</sup> + b<sup>n</sup> + c<sup>n</sup> + d<sup>n</sup> + |
Armstrong sayısının 3 basamaklı olması durumunda, her basamağın küplerinin toplamı, sayının kendisine eşittir. Örneğin, 153 bir Armstrong numarasıdır çünkü
1 2 3 | 153 = 1*1*1 + 5*5*5 + 3*3*3 |
C Kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include <stdio.h> int main() { int num, originalNum, remainder, result = 0; printf("3 Basamaklı sayı girin: "); scanf("%d", &num); originalNum = num; while (originalNum != 0) { remainder = originalNum % 10; result += remainder * remainder * remainder; originalNum /= 10; } if (result == num) printf("%d Armstrong sayıdır.", num); else printf("%d Armstrong sayı değildir.", num); return 0; } |
Ekran Çıktısı:
1 2 3 4 | 3 Basamaklı sayı girin: 371 371 Armstrong sayıdır. |
Armstrong sayısını kontrol edin (n) basamak.
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 | #include <math.h> #include <stdio.h> int main() { int num, originalNum, remainder, n = 0; float result = 0.0; printf("Sayı girin: "); scanf("%d", &num); originalNum = num; for (originalNum = num; originalNum != 0; ++n) { originalNum /= 10; } for (originalNum = num; originalNum != 0; originalNum /= 10) { remainder = originalNum % 10; result += pow(remainder, n); } if ((int)result == num) printf("%d sayısı Armstrong sayıdır.", num); else printf("%d sayısı Armstrong sayı değildir.", num); return 0; } |
1 2 3 4 | Sayı girin: 1634 1634 sayısı Armstrong sayıdır. |
Add Comment