Project Euler 4. Soru Cevabı

Project Euler Soru 4 Cevabı

Project Euler Soru 4 Cevabı

def isPalindrome(s):
    return s == s[::-1]

result = 0
for i in range(100, 999):
    for x in range(100, 999):
        num = i * x
        if isPalindrome(str(num)) and num > result:
            result = num
            
print(result)

Burada ilk olarak bir fonksiyon oluşturuyoruz ve bu fonksiyonumuzda sayının veya kelimenin palindromik olup olmadığını kontrol ediyoruz.

Fonksiyonun çalışma prensibi çok basit. Sayı, sayının tersen yazılışı ile aynı ise "True" değil ise "False" değerini döndürüyor.

"result" adında bir değişkenimiz bulunuyor, bu da bizim en büyük palindromik sayımızı tutan değişkenimiz. Aşağıdaki algoritmada en büyük olan ile sürekli değer değiştiriyor.

iki adet for döngümüz var. I ve X bunlar 100 den 999 a kadar gidiyor, soru bizden 3 basamaklı sayılar ile oluşturulabilecek en büyük palindromik sayıyı istediği için sayılarımız 100 ve 999 içinde deneme yapıyor.

"num" adında bir değişkenimiz var ve bu "num" değişkenine i ve x in çarpımını yazıyoruz.

En içteki for döngüsünün içinde palindromik durumunu ve "result" değişkeninde yazan sayıdan büyük mü? kontrol ediyoruz. Eğer büyük ise "result" değişkenimize yeni sonucu ekliyoruz. İşlem tamamlandığı zaman da sonucu ekrana yazdırıyoruz.

Doğru cevabı görmek için burayı tıklayın.