Bu yazımızda C# ile armstrong sayıları bulan program örneğini çözeceğiz. Hemen sorumuzu ve çözümünü görelim.

Soru : 1000’e kadar olan armstrong sayıları bulan kodu C# dilinde yazınız.

Öncelikle armstrong sayısı nedir ? sorusunu yanıtlayalım.

Armstrong sayısı (ya da Narcissistic sayı veya Pluperfect sayı olarak da adlandırılır), bir sayının rakamlarının üslerinin toplamının o sayıya eşit olduğu bir sayıdır. Basitçe ifade edecek olursak, bir sayının her bir rakamını kendisinin basamak değeri kadar üssünü alıp bu üsleri toplarsak, sonuç olarak ilk sayıya ulaşıyorsak, o sayı bir Armstrong sayısıdır.

Örneğin, 153 sayısı bir Armstrong sayısıdır çünkü:

1*1*1 + 5*5*5 + 5*5*5 = 1 + 125 + 27 = 153

Cevap :

using System;

class Program
{
    static void Main(string[] args)
    {
        bool IsArmstrong(int num){
            int originalNum = num;
            int sum = 0;
            int digits = (int)Math.Floor(Math.Log10(num) + 1);
            while (num > 0){
                int digit = num % 10;
                sum += (int)Math.Pow(digit, digits);
                num /= 10;
            }
            return sum == originalNum;
        }
        
        for (int i = 1; i <= 1000; i++){
            if (IsArmstrong(i)){
                Console.Write($"{i} ");
            }
        }
    }
}

Çıktısı :

1 2 3 4 5 6 7 8 9 153 370 371 407 

Bu yazımızda C# ile armstrong sayıları bulan program örneğini çözdük. Diğer C# örneklerine ulaşmak için buraya tıklayabilirsiniz.

Bu yazı dikkatini çekebilir.   C# Dizideki Tekrarlayan Elemanları Bulan Program