Armstrong Sayısı Nedir? Python ile Nasıl Kodlanır?

armstrong sayısı nedir. Python ile nasıl kodlanır

Python Örnekleri:

Merhaba! Bu yazımızda Python programlama dili kullanarak girdi olarak verdiğimiz sayının Armstrong Sayısı olup olmadığını geri dönen programı yazacağız.

Peki Nedir Bu Armstrong Sayı?

Elimizdeki sayıyı rakamlara ayırıp, basamak sayısını bu rakamlara üs olarak veriyoruz ve bu sayıları topluyoruz. Toplama işlemi sonucu yine aynı sayı çıkıyorsa işte elimizdeki sayıya Armstrong Sayı deriz.

Örnek ile açıklamaya çalışayım,
Elimizde bir sayı var ve bu sayının 3 basamaklı bir sayı olduğunu varsayalım. Bu sayıyı oluşturan rakamlardan her birinin 3. kuvvetinin toplamı(4 basamaklı sayılar için 4.kuvveti şeklinde oluyor) o sayıya eşitse bu sayıya “Armstrong Sayı” denir.

Örnek olarak,

370 üzerinde dediklerimizi gerçekleştirelim ;
3^3 + 7^3 + 0^3

27 + 343 + 0 = 370 yapıyor. Demek ki 370 sayısı bir Armstrong Sayısı‘dır.

Armstrong sayılara örnek vermek gerekirse,

6, 153, 370, 371, 407


Python ile kodlamaya geçelim

while True:
    girdi=input("Sayı girin (Çıkmak için 'q' ya basın.) : ")

    if girdi=="q":
        break
    
    uzunluk=len(girdi)

    toplam=0
    for i in range(uzunluk):
        toplam = toplam + int(girdi[i])**uzunluk
    
    if(toplam==int(girdi)):
        print("Girdiğiniz Sayı Bir Armstrong Sayıdır!")
    else:
        print("Girdiğiniz Sayı Armstrong Bir Sayı Değildir!")

Kod nasıl çalışıyor? Adım adım

  • Kullanıcıdan sürekli sayı alabilmek için while döngüsü içine yazıyoruz kodlarımızı. Dilersek ‘q’ ya basarak döngüyü sonlandırabiliyoruz.
  • Öncelikle girdiyi string olarak alıyoruz. Çünkü basamakları kullanmamız gerekiyor Armstrong Sayı olup olmadığını bulabilmemiz için.
  • uzunluk adında bir değişkene girilen basamaklı sayının uzunluğunu len(girdi) şeklinde alıyoruz.
  • for döngüsüne sokarak uzunluk kadar dönmesini istiyoruz. for döngüsü dışında toplam=0 adında bir değişken oluşturmuştuk. Bu toplam değişkenine her döngüde ekleyerek, girdi[i] diyerek i.basamaktaki sayının uzunluk üssünü alıyoruz.
  • for döngüsü bittiğinde toplam değişkeni bir sayıya eşit olmuş oluyor.
  • Aşağıdaki if kontrol bloğunda bu toplam değerinin bizim girdiğimiz girdi sayısına eşit olup olmadığını kontrol ediyoruz. Eğer eşitse, “Girdiğiniz Sayı Bir Armstrong Sayıdır!” yazıyor. Eşit değilse, “Girdiğiniz Sayı Armstrong Bir Sayı Değildir!” yazıyor.

Aklınıza takılan soruları veya düşüncelerinizi aşağıda yorum olarak yazabilirsiniz.


Göz atmak istersen :

PYTHON İLE ÖZEL ÜÇGEN VE ÖZEL DÖRTGEN KONTROLÜ
MÜKEMMEL SAYI NEDİR? PYTHON İLE NASIL KODLANIR?
PYTHON İLE 2.DERECEDEN DENKLEM KÖKÜ BULAN KOD

Paylaşmak istersen?

4 Comments

  1. Armstrong sayı bulucu:
    sayi=input(“Sayıyı girin :”)
    while True:
    i=0
    sonuc=0
    while (i<len(sayi)):
    sonuc=sonuc+(int(sayi[i])**(len(sayi)))
    i +=1
    if sonuc == int(sayi):
    print("Bulunan sayı : "+ sayi)
    sayi=str(int(sayi)+1)

    • Selam Burak,
      4 basamak için aşağıdaki gibi bir örnek verebiliriz.
      1634 sayısını inceleyelim. Yukarıda anlatımdaki gibi sayıyı basamaklarına ayırıp, basamak değerlerinin basamak sayısı kadar kuvvetini alıp toplayalım.
      1^4 + 6^4 + 3^4 + 4^4
      4 basamaklı olduğu için tüm basamaklarda 4.kuvvetini aldık. Devamında işlemi ilerletirsek,
      1 + 1296 + 81 + 256
      bunları toplarsak da tekrardan 1634 sayısını elde ediyoruz.
      Yani baştaki incelediğimiz sayıya ulaşmış olduk.
      Bu sayede 1634 sayısının Armstrong Sayısı olduğunu söyleyebiliriz. Eğer toplama işlemi sonucunda 1634 değil de başka bir sayı elde etmiş olsaydık. 1634 sayısı, Armstrong Sayı Değildir diyecektik.
      İyi çalışmalar.

Leave a Reply

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