Bu seride Sitemizdeki linkleri görmek için ÜYE olmalısınız. sorularını çözmeyi planlıyorum.

Soru :
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
Find the sum of all the multiples of 3 or 5 below 1000.


10'un altındaki 3'ün veya 5'in katı olan sayıları listelersek 3,5,6 ve 9 elde ederiz. Bu katların toplamı 23'tür.
1000'in altındaki 3 veya 5'in katları olan sayıların toplamını bulunuz


Sorunun linki : Sitemizdeki linkleri görmek için ÜYE olmalısınız.

Python için olan çözümümde öncelikle katlar adlı bir liste oluşturdum. Sonrasında 1000'e kadar giden bir for döngüsü oluşturdum. İf bloğu ile sayının 3'e veya 5'e bölünüp bölünmediğini kontrol ediyorum. Eğer en az birine bölünüyorsa katlar listemize ; katlar.append(_) diyerek ekliyor.Ve sum(katlar) ile toplamlarını veriyor.


Sitemizdeki linkleri görmek için ÜYE olmalısınız.

Kod:
katlar = []
for _ in range(1000):
if _%3== 0 or _%5==0:
katlar.append(_)
print(sum(katlar))
Daha kısa bir kod arayanlar için :

Sitemizdeki linkleri görmek için ÜYE olmalısınız.



İlk kod 10000 çalıştırmayı 6.4416181 saniyede
İkinci kod ise 5.1989709 saniyede tamamladı.

C# ile çözerken liste oluşturmak yerine toplam adında bir değişken oluşturdum. Yine bir for döngüsü var. For döngüsünün içinde ise sayının 3'e veya 5'e bölünüp bölünmediğini kontrol eden bir if bloğu var. Eğer en az birine bölünebiliyorsa sayı toplam değişkenine ekleniyor. En sonda ise toplam değişkenini ekrana yazdırıyor. Console.Read(); ise terminalin kapanmasını engelliyor. Eğer enterlarsak kapanacaktır.

Sitemizdeki linkleri görmek için ÜYE olmalısınız.

Kod:
int toplam = 0;

for (int _ = 0; _ < 1000; _++)
{
if (_%3==0 || _%5==0)
{
toplam += _;
}
}
Console.WriteLine(toplam);

Console.Read();

Teşekkürler.