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:
- Sayının tüm rakamlarını ayır.
- Her rakamı, toplam basamak sayısı kadar üssünü al.
- Tüm sonuçları topla.
- 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.