Project Euler 1: 3 ve 5'in Katları

- Özgün
Project Euler 1: Eğer 10'un altında kalan ve 3 ile 5'in katları olan bütün doğal sayıları sıralarsak: 3, 5, 6 ve 9'u elde ederiz. Bu sayıların toplamı da 23'tür. 1000'den küçük 3 veya 5'e bölünen tüm sayıların toplamları nedir?
Project Euler 1 oldukça basit bir soru. Soru numarası arttıkça soruların zorluğu da artıyor. Bu soru 30 Haziran 2016 itibariyle 574622 kişi tarafından çözülmüş durumda.
Çözüm
Bizden istenen 1000'in altında 3 veya 5'in bölenlerini bulup, bunları toplamamız. Bu soruda dikkat etmemiz gereken nokta, bize sorunun açıklamasında açıkça gösterilmemiş. 10'a kadar olan 3 ve 5'in katlarında bu iki sayının ortak katı yok. Örneğin 20'ye kadar olan sayılar için elde edeceklerimiz 3, 5, 6, 9, 10, 12, 15, 18 olacaktır. Fakat burada bir problem var! 15 sayısı hem 3'e hem de 5'e bölünüyor
Eğer yazdığınız program 3'e bölünen sayıları ayrıca topluyor, 5'e bölünenleri ayrıca topluyorsa, ortak katları iki kez toplama katacaktır. Bu da yanlış sonuç bulmanız demek. İsterseniz her ikisini ayrı ayrı toplayıp, bu genel toplamdan ortak katları da çıkarabilirsiniz.
Böyle bir yaklaşım en basit yaklaşımdır. Şu an için bir problem yok, fakat sayılar büyüdüğünde ve yapılacak işlem arttığında böylesine kaba yaklaşımlar bizim işlem süremizi aşırı uzatarak problemi çözmemizi engelleyecektir. Öncelikle bu kaba çözüme bir bakalım, ardından kodumuzu nasıl hızlandırabileceğimizi düşünelim.

Sonuç: 233168 olarak bulunur.
Mantıksal Yaklaşım
Aslında soruda bize verilen "3 veya 5" ifadesi bir mantık operatörü içeriyor. C#'da veya operatörü || ile gösterilir. Bunu kodumuz içerisinde kullanarak biraz daha basit bir ifade elde edebiliriz.
C# Çözümü

Python Çözümü

Matematiksel Yaklaşım
Buradaki sorulara matematiksel çözümler getirmemiz işimizi oldukça kolaylaştırıyor. Hatta bir noktadan sonra soruların zorluğu, matematiksel yöntemler kullanmayı zorunlu kılıyor. Bu sorumuzda toplamlar söz konusu olduğu için basit toplam yöntemlerini inceleyerek kağıt kalemle dahi birkaç dakikada cevabı bulmak mümkün. İsterseniz elle yapın, isterseniz metodu kullanarak programa yaptırın. Benim kağıt üzerinde hesaplayarak çözmem beş dakikamı ya aldı ya da almadı.
Kaba çözümde 1'den 1000'e kadar olan sayıları bir bir artırarak her seferinde 3 veya 5'e bölünüp bölünmediğine bakıyorduk. Oysa ki katların toplamı şeklinde ifade edebiliriz. N1 3 ve katlarının toplamı olmak üzere;

Aynı şekilde 5 için de

Ayrıca çıkarmak istediğimi 15'in katlarını da aynı şekilde bulabiliriz.

Gauss yöntemini uygulayarak ardışık sayı dizilerinin toplamlarını kolaylıkla bulabiliriz. N=1+2+3+...+n şeklinde verilen bir dizi için toplam;
Evrim Ağacı'nın çalışmalarına Kreosus, Patreon veya YouTube üzerinden maddi destekte bulunarak hem Türkiye'de bilim anlatıcılığının gelişmesine katkı sağlayabilirsiniz, hem de site ve uygulamamızı reklamsız olarak deneyimleyebilirsiniz. Reklamsız deneyim, sitemizin/uygulamamızın çeşitli kısımlarda gösterilen Google reklamlarını ve destek çağrılarını görmediğiniz, %100 reklamsız ve çok daha temiz bir site deneyimi sunmaktadır.
KreosusKreosus'ta her 50₺'lik destek, 1 aylık reklamsız deneyime karşılık geliyor. Bu sayede, tek seferlik destekçilerimiz de, aylık destekçilerimiz de toplam destekleriyle doğru orantılı bir süre boyunca reklamsız deneyim elde edebiliyorlar.
Kreosus destekçilerimizin reklamsız deneyimi, destek olmaya başladıkları anda devreye girmektedir ve ek bir işleme gerek yoktur.
PatreonPatreon destekçilerimiz, destek miktarından bağımsız olarak, Evrim Ağacı'na destek oldukları süre boyunca reklamsız deneyime erişmeyi sürdürebiliyorlar.
Patreon destekçilerimizin Patreon ile ilişkili e-posta hesapları, Evrim Ağacı'ndaki üyelik e-postaları ile birebir aynı olmalıdır. Patreon destekçilerimizin reklamsız deneyiminin devreye girmesi 24 saat alabilmektedir.
YouTubeYouTube destekçilerimizin hepsi otomatik olarak reklamsız deneyime şimdilik erişemiyorlar ve şu anda, YouTube üzerinden her destek seviyesine reklamsız deneyim ayrıcalığını sunamamaktayız. YouTube Destek Sistemi üzerinde sunulan farklı seviyelerin açıklamalarını okuyarak, hangi ayrıcalıklara erişebileceğinizi öğrenebilirsiniz.
Eğer seçtiğiniz seviye reklamsız deneyim ayrıcalığı sunuyorsa, destek olduktan sonra YouTube tarafından gösterilecek olan bağlantıdaki formu doldurarak reklamsız deneyime erişebilirsiniz. YouTube destekçilerimizin reklamsız deneyiminin devreye girmesi, formu doldurduktan sonra 24-72 saat alabilmektedir.
Diğer PlatformlarBu 3 platform haricinde destek olan destekçilerimize ne yazık ki reklamsız deneyim ayrıcalığını sunamamaktayız. Destekleriniz sayesinde sistemlerimizi geliştirmeyi sürdürüyoruz ve umuyoruz bu ayrıcalıkları zamanla genişletebileceğiz.
Giriş yapmayı unutmayın!Reklamsız deneyim için, maddi desteğiniz ile ilişkilendirilmiş olan Evrim Ağacı hesabınıza üye girişi yapmanız gerekmektedir. Giriş yapmadığınız takdirde reklamları görmeye devam edeceksinizdir.

şeklinde ifade edilir. Bu durumda (1) + (2) - (3) işlemi bize sonucu vereceğinden cevap (4) no'lu ifade kullanılarak aşağıdaki gibi bulunur.

Böylelikle sonuç 166833 + 99500 - 33165 = 233168 olarak bulunur.
Ögetay Kayalı
Evrim Ağacı'nda tek bir hedefimiz var: Bilimsel gerçekleri en doğru, tarafsız ve kolay anlaşılır şekilde Türkiye'ye ulaştırmak. Ancak tahmin edebileceğiniz gibi Türkiye'de bilim anlatmak hiç kolay bir iş değil; hele ki bir yandan ekonomik bir hayatta kalma mücadelesi verirken...
O nedenle sizin desteklerinize ihtiyacımız var. Eğer yazılarımızı okuyanların %1'i bize bütçesinin elverdiği kadar destek olmayı seçseydi, bir daha tek bir reklam göstermeden Evrim Ağacı'nın bütün bilim iletişimi faaliyetlerini sürdürebilirdik. Bir düşünün: sadece %1'i...
O %1'i inşa etmemize yardım eder misiniz? Evrim Ağacı Premium üyesi olarak, ekibimizin size ve Türkiye'ye bilimi daha etkili ve profesyonel bir şekilde ulaştırmamızı mümkün kılmış olacaksınız. Ayrıca size olan minnetimizin bir ifadesi olarak, çok sayıda ayrıcalığa erişim sağlayacaksınız.
Makalelerimizin bilimsel gerçekleri doğru bir şekilde yansıtması için en üst düzey çabayı gösteriyoruz. Gözünüze doğru gelmeyen bir şey varsa, mümkünse güvenilir kaynaklarınızla birlikte bize ulaşın!
Bu makalemizle ilgili merak ettiğin bir şey mi var? Buraya tıklayarak sorabilirsin.
Soru & Cevap Platformuna Git- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
Evrim Ağacı'na her ay sadece 1 kahve ısmarlayarak destek olmak ister misiniz?
Şu iki siteden birini kullanarak şimdi destek olabilirsiniz:
kreosus.com/evrimagaci | patreon.com/evrimagaci
Çıktı Bilgisi: Bu sayfa, Evrim Ağacı yazdırma aracı kullanılarak 08/05/2025 07:33:50 tarihinde oluşturulmuştur. Evrim Ağacı'ndaki içeriklerin tamamı, birden fazla editör tarafından, durmaksızın elden geçirilmekte, güncellenmekte ve geliştirilmektedir. Dolayısıyla bu çıktının alındığı tarihten sonra yapılan güncellemeleri görmek ve bu içeriğin en güncel halini okumak için lütfen şu adrese gidiniz: https://evrimagaci.org/s/12645
İçerik Kullanım İzinleri: Evrim Ağacı'ndaki yazılı içerikler orijinallerine hiçbir şekilde dokunulmadığı müddetçe izin alınmaksızın paylaşılabilir, kopyalanabilir, yapıştırılabilir, çoğaltılabilir, basılabilir, dağıtılabilir, yayılabilir, alıntılanabilir. Ancak bu içeriklerin hiçbiri izin alınmaksızın değiştirilemez ve değiştirilmiş halleri Evrim Ağacı'na aitmiş gibi sunulamaz. Benzer şekilde, içeriklerin hiçbiri, söz konusu içeriğin açıkça belirtilmiş yazarlarından ve Evrim Ağacı'ndan başkasına aitmiş gibi sunulamaz. Bu sayfa izin alınmaksızın düzenlenemez, Evrim Ağacı logosu, yazar/editör bilgileri ve içeriğin diğer kısımları izin alınmaksızın değiştirilemez veya kaldırılamaz.