Python Armstrong Sayı Denetleyicisi
Bir sayının, kendi basamaklarının toplamının basamak sayısının üssüne eşit olduğu bir Armstrong (narsisistik) sayısı olup olmadığını doğrulayın.
Genel Bakış
Armstrong sayısı (narsisistik veya çok mükemmel dijital değişmez sayı olarak da bilinir), rakamlarının n'inci kuvvetlerinin toplamına eşit olan n basamaklı bir sayıdır.
Örneğin 153 3 basamaklı bir Armstrong sayısıdır çünkü 1^3 + 5^3 + 3^3 = 153. Benzer şekilde 9474 4 basamaklı bir Armstrong sayısıdır çünkü 9^4 + 4^4 + 7^4 + 4^4 = 9474.
Bunu Python'da, basamak sayısını kolayca saymak ve her basamakta yineleme yapmak için tamsayıyı bir dizeye dönüştürerek uygularız.
Kod ve Yürütme Çıkışı
Armstrong sayılarına ilişkin matematiksel kriterleri karşılayıp karşılamadıklarını belirlemek için bir dizi sayıyı kontrol edin.
def is_armstrong(num):
num_str = str(num)
n = len(num_str)
digit_sum = sum(int(digit) ** n for digit in num_str)
return digit_sum == num
test_nums = [153, 370, 9474, 123]
for val in test_nums:
result = "Armstrong" if is_armstrong(val) else "Not Armstrong"
print(f"{val:4d} -> {result}") 153 -> Armstrong
370 -> Armstrong
9474 -> Armstrong
123 -> Not ArmstrongAdım Adım Uygulama
- Sayı teorisi araştırması ve mantık alıştırmaları
- Sınıf matematik programlama ödevleri
- Rekreasyonel programlama
Sıkça Sorulan Sorular
Tüm tek basamaklı sayılar Armstrong sayıları mıdır?
Evet. 1'in üssü olan herhangi bir rakam kendisine eşittir (örneğin, 5^1 = 5).