Project Euler – Soru 6: “Kareler Toplamı Farkı”

Project Euler – Soru 6: “Kareler Toplamı Farkı”

İlk on doğal sayının karelerinin toplamı,1^2+ 2^2+ … + 10^2= 385’dir.

İlk on doğal sayının toplamının karesi,(1 + 2 + … + 10)^2= 55^2= 3025’dir

Görüyoruz ki ilk on doğal sayının toplamının karesiyle ilk on doğal sayının karelerinin toplamının farkı 3025 – 385 = 2640’dır. İlk yüz doğal sayının toplamlarının karesiyle karelerinin toplamının farkını bul.

Algoritma:

  1. 1’den 100’e kadar olan sayıların tek tek karelerini alıp bunları bir değişken altında toplayalım.
  2. 1’den 100’e kadar olan sayıları toplayıp ortaya çıkan sonucun karesini alalım.
  3. Bunları birbirlerinden çıkaralım.

Akış Şeması:

Koda Dökme (Python):

def sum_of_squares(sayi):
    sum2=0
    sum1=0
    for i in range(sayi+1):
        sum1+=i*i
    for i in range(sayi+1):
        sum2+=i
    sum2=sum2*sum2
    return sum2-sum1

print(sum_of_squares(100))