Bu pratikte, C# dilinde döngüler kullanarak girilen sayının Armstrong sayısı olup olmadığını kontrol eden bir program yazacağız. Armstrong sayısı, bir sayının rakamlarının küplerinin toplamına eşit olduğu bir sayıdır. Örneğin, 153 sayısı bir Armstrong sayısıdır çünkü 1³ + 5³ + 3³ = 153. C# dilinde Armstrong sayısını bulmak, sayının basamaklarını ayırarak ve her basamağın küpünü alarak yapılabilir.
using System;
class Program
{
static void Main()
{
// Kullanıcıdan bir sayı alınır
Console.Write("Bir sayı girin: ");
int number = int.Parse(Console.ReadLine());
// Sayının basamak sayısını bulma
int temp = number;
int sum = 0;
int digits = 0;
// Sayının basamak sayısını hesaplamak için döngü
while (temp != 0)
{
digits++;
temp /= 10;
}
temp = number;
// Sayının Armstrong olup olmadığını kontrol etmek için döngü
while (temp != 0)
{
int digit = temp % 10; // Rakamı almak için
sum += (int)Math.Pow(digit, digits); // Rakamların küpünü almak
temp /= 10; // Bir sonraki basamağa geçmek
}
// Sonuç
if (sum == number)
{
Console.WriteLine($"{number} bir Armstrong sayısıdır.");
}
else
{
Console.WriteLine($"{number} bir Armstrong sayısı değildir.");
}
}
}
Senaryo 1:
Bir sayı girin: 153 153 bir Armstrong sayısıdır.
Senaryo 2:
Bir sayı girin: 123 123 bir Armstrong sayısı değildir.
Senaryo 3:
Bir sayı girin: 9474 9474 bir Armstrong sayısıdır.
Bu C# programı, kullanıcıdan alınan sayının Armstrong sayısı olup olmadığını kontrol eder. Program, sayının basamaklarını ayırıp her basamağın küpünü alarak toplamını bulur ve bu toplam, sayının kendisiyle eşleşiyorsa, sayının Armstrong sayısı olduğunu belirler. Eğer eşleşmiyorsa, sayının Armstrong sayısı olmadığı sonucuna varılır.