Project Euler

Project Euler veya Euler Projesi, çözülmesi için matematiksel kavrayışlardan daha fazlasını gerektiren bir dizi zorlu matematik/bilgisayar programlama problemidir. Her ne kadar matematik zarif ve etkili yöntemlere ulaşmanıza yardımcı olsa da, çoğu problemi çözmek için bir bilgisayar ve programlama becerileri gerekecektir. Toplam problem sayısı 800'den fazladır ve hala projeye etkin olarak problem eklenmektedir.

Hedef kitlesi, temel müfredatın öğrenmeye olan açlığını beslemeyen öğrencileri, geçmişi öncelikle matematik olmayan ancak matematiksel şeylere ilgi duyan yetişkinleri ve problem çözme ve matematiğini en ileri düzeyde tutmak isteyen profesyonelleri içerir.

Örnek soru ve çözüm 
Project Euler'in ilk sorusu:

Birinci problem tipik problemlerden çok daha basit olmasına rağmen, verimli bir algoritmanın yaptığı potansiyel farkı göstermeye yarar. Kaba kuvvet algoritması 1000'den az olan her doğal sayıyı inceler ve gereksinimleri karşılayan sayılarin toplamını tutar. Aşağıdaki sözde kodda gösterildiği gibi, bu yöntemin uygulanması kolaydır:

Sözde kod
Tanımla TOPLAM 0 olacak;
her bir SAYİ icin SAYİ 1 den 1000 e kadar
  eger SAYİ kalan 3 = 0 veya eger SAYİ kalan 5 = 0 ise
    SAYI ekle TOPLAM;
çıktı TOPLAM
Daha zor problemler için etkili bir algoritma bulmak giderek daha önemli hale gelir.Bu sorun için, dahil etme-hariç tutma ilkesini ve kapalı formlu bir toplama formülünü kullanarak 1000 işlemi azaltabiliriz.

Python
print sum(x for x in xrange(1, 1000) if x%3==0 or x%5==0)

C++
#include <iostream>
using namespace std;
int main( ) {
  int sum = 0;
  for (int i = 0; i < 1000; i++)
    if ( i % 3 == 0 || i % 5 == 0 )
      sum += i;
  cout << sum << endl;
  return 0;
}

Kaynakça

Dış bağlantılar 
 

Programlama
Bilgisayar mühendisliği