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.