Python: Armstrong Sayı Kontrolü

Python Armstrong Sayı Kontrolü

Armstrong sayı, matematikte ve sayısal analizde kullanılan özel bir sayı türüdür. Bir sayının her basamağındaki rakamların, basamak sayısı kadar üssünün toplamı, sayının kendisine eşitse o sayı Armstrong sayı olarak adlandırılır. Bu tür sayılar bazen “Narsistik Sayılar” olarak da bilinir.

Örnek vermek gerekirse:

  • 153: 1³ + 5³ + 3³ = 153
  • 9474: 9⁴ + 4⁴ + 7⁴ + 4⁴ = 9474

Bir Armstrong sayıyı hesaplamak için:

  1. Sayının tüm rakamlarını ayır.
  2. Her rakamı, toplam basamak sayısı kadar üssünü al.
  3. Tüm sonuçları topla.
  4. Eğer toplam, sayının kendisine eşitse, bu bir Armstrong sayıdır!
Python
# Kullanıcıdan bir sayı al
sayi = int(input("Bir sayı girin: "))

# Orijinal sayıyı sakla
orijinal_sayi = sayi

# Basamak sayısını bul
basamak_sayisi = len(str(sayi))

# Basamakların üslerini topla
toplam = 0
while sayi > 0:
    basamak = sayi % 10
    toplam += basamak ** basamak_sayisi
    sayi //= 10

# Kontrol et ve sonucu göster
if toplam == orijinal_sayi:
    print(f"{orijinal_sayi} bir Armstrong sayıdır.")
else:
    print(f"{orijinal_sayi} bir Armstrong sayı değildir.")
# Ekran Çıktısı - 407

Bir sayı girin: 407
407 bir Armstrong sayıdır.
# Ekran Çıktısı - 9474

Bir sayı girin: 9474
9474 bir Armstrong sayıdır.
# Ekran Çıktısı - 325

Bir sayı girin: 325
325 bir Armstrong sayı değildir.