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;
} }
Senior Software Engineer, @Microsoft
Ada ve Ege'nin babası ;)
Makale Adedi: 484