Python

Python Armstrong Sayısı Bulma

Python ile girilen sayısının armstrong sayısı olup olmadığını kontrol etmek, sınavlarda ve ödevlerde oldukça karşılaşılan bir soru, phyton öğrenmeye yeni başlayan arkadaşlarda python armstrong sayısı örneğini inceleyerek oldukça basit olan mantığını anlayabilirler.

Python Adam Asmaca , Python Sayı Tahmin Oyunu  ve çeşitli Python örnekleri ve çalışma soruları makalelerimizide inceleyebilirsiniz.

Armstrong Sayısı Nedir?

Bir sayının her basamağındaki rakamların, basamak sayısı kadar kuvvetinin yani üstünün alınarak toplanması sonucunda elde edilen toplam, basamaklarını ayırdığımız ilk sayımızın kendisine eşit ise bu sayı bir Armstrong sayısıdır.  Tamam kabul ediyorum tanım karmaşık gelmiş olabilir en iyisi örnek ile açıklayalım. 🙂

  • 1634 sayısı üzerinden gidelim.
  • 4 basamak olduğu için basamakları oluşturan “1,6,3,4” rakamlarının 4. kuvvetlerini hesaplayalım
  • 1^4 = 1
  • 6^4 = 1296
  • 3^4 = 81
  • 4^4 = 256
  • Hepsinin toplamının bize 1634 sonucu verip vermediğini kontrol edelim.
  • 1^4 + 6^4 + 3^4 + 4^4 = 1 + 1296 + 81 +256 = 1634
  • 1634 sayısının basamaklarının 4. kuvvetleri toplamı kendisine eşit çıktı. İşlemlerimiz sonucunda 1634 sayısının bir armstrong sayısı olduğunu söyleyebiliriz.

Basitçe bir kaç örnek daha verelim.

  • 370 -> 3 ^ 3 + 7 ^ 3 + 0 ^ 3 = 370
  • 153 -> 1 ^ 3 + 5 ^ 3 + 3 ^ 3 = 153

370 ve 153 sayılarıda birer armstong sayısıdır.

Python Armstrong Sayısı 

Her sayı için tek tek bu işlemlerle uğraşıp armstrong sayısı kontrolü yapmak yerine kodladığımız programa tüm bu işlemleri yaptırabiliriz.Kodunu birkaç farklı şekilde yazabiliriz.

Soru: Kullanıcı tarafından girilen sayının armstrong sayısı olup olmadığını kontrol eden python kodunu yazınız.
#Python Armstrong Sayısı Bulma - Başka Bir Kod

sayi = int(input("Sayıyı Giriniz:"))
basamak = str(sayi)

toplam=0

for x in basamak:
    
    rakam = int(x)**len(basamak)
    toplam += rakam 
    
if(sayi == toplam):
    print("Bu Bir Armstrong Sayısıdır.")
else:
    print("Armstong Sayısı Degildir.")

veya  yeni başlayan arkadaşlar için daha basit anlaşılır şekilde

sayi = int(input("Sayıyı Giriniz:"))
basamak = int(input("Basamak Sayısını Giriniz:"))

toplam =0

i = sayı

for x in range(0, basamak+1):
    
    rakam = i% 10
    toplam += rakam ** basamak
    i // = 10
    
if(sayi == toplam):
    print("Bu Bir Armstrong Sayısıdır.")
else:
    print("Armstong Sayısı Degildir.")

Sizlerde dilediğinizi kullanabilir veya kendiniz farklı şekillerde kodlayabilirsiniz.

Ümit Köysu

Hayatını kitaplar ve oyunlar arasında geçirmekten zevk alan, bilim kurgu aşığı her nevi yazılımcı, bir nevi mühendis kişi Bilgi paylaştıkça çoğalır felsefesi ile Başkakabirkod.com okurlarına içerikler hazırlamaya devam ediyor.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu
Kapalı
Copy link