Euler - 5

Euler serisinin beşinci yazısında, Project Euler’in 5. sorusunu çözeceğiz;

Orijinal soru; 2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.

What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20?

Türkçesi; 1’den 10’a kadar olan sayılara kalansız bölünebilen en küçük sayı 2520’dir.

1’den 20’ye kadar olan rakamların tamamına kalansız bölünebilen en küçük sayı kaçtır?

Önce siz çözmeyi deneyin, çözemezseniz ;

using System; using System.Collections.Generic; using System.Linq; using System.Collections;

static class Program { static void Main(string[] args) { var Sonuc = Enumerable.Range(1, 20).Carpanlar().Aggregate(1, (item, number) => item * number);

    Console.WriteLine(Sonuc);

    Console.Read();
}

private static IEnumerable<int> Carpanlar(this IEnumerable<int> liste)
{
    if (!liste.Any())
        yield break;

    int carpan = liste.First();

    if (carpan == 0)
        yield break;

    yield return carpan;

    foreach (int item in (from item in liste.Skip(1) select (item % carpan == 0) ? item / carpan : item).Carpanlar())
        yield return item;
} }

İlgili diğer makaleler

blog comments powered by Disqus

Engin Polat hakkında

Senior Software Engineer, @Microsoft

Ada ve Ege'nin babası ;)

Kategoriler

İstatistik

Makale Adedi: 484

Creative Commons Lisansı