Euler – 10 | Engin Polat\'ın Windows 8 , Windows Phone 8 ve C# içerikli programcılık sitesi
Ana Sayfa > C#, Programlama > Euler – 10

Euler – 10

10 February 2013

Euler serisinin onuncu yazısında, Project Euler’in 10. sorusunu çözeceğiz;

Orjinal Soru; The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17

Find the sum of all the primes below two million
Türkçesi; 10'dan küçük asal sayıların toplamı 17'dir; 2 + 3 + 5 + 7 = 17

2.000.000'dan küçük tüm asal sayıların toplamını bulun

Önce siz çözmeyi deneyin, çözemezseniz

private static List<int> Euler10()
{
	int counter = 3;
	bool isPrime;
	int j;
	List<int> primes = new List<int>();

	primes.Add(2);

	while (counter < = 2000000)
	{
		j = 0;
		isPrime = true;
		while (primes[j] * primes[j] <= counter)
		{
			if (counter % primes[j] == 0)
			{
				isPrime = false;
				break;
			}
			j++;
		}

		if (isPrime)
		{
			primes.Add(counter);
		}

		counter += 2;
	}

	return primes;
}

public static class Program
{
	public static void Main(string[] args)
	{
		var Sonuc = Euler10();
		Console.WriteLine("Euler 10 sonuç : " + Sonuc.Sum())

		Console.ReadLine();
	}
}

  • private static void Soru10()
    {
    Stopwatch watch1 = Stopwatch.StartNew();
    Console.WriteLine(Mathe.AsalSayilarToplami(2000000).ToString());
    Console.WriteLine(watch1.ElapsedMilliseconds.ToString());
    }
    public static List AsalSayilar(int limit)
    {
    List liste = new List();

    if (limit < 2)
    {
    if (limit == 1)
    liste.Add(2);
    }
    else
    {
    liste.Add(2);

    for (int sayi = 3; sayi < limit; sayi += 2)
    {
    bool asalMi = true;
    for (int i = 0; i < liste.Count && liste[i] * liste[i]<=sayi; i++)
    {
    if (sayi % liste[i] == 0)
    {
    asalMi = false;
    i = liste.Count;
    }
    }
    if (asalMi)
    {
    liste.Add(sayi);
    }
    }
    }

    return liste;
    }
    public static long AsalSayilarToplami(int limit)
    {
    long sonuc = 0;

    foreach (int item in AsalSayilar(limit))
    {
    sonuc += item;
    }
    return sonuc;
    }

  • serhat

    If you start from the top and move downwards to an adjecent number as in below, the maximum sum of the numbers from top to bottom is 24. You are only allowed to walk downwards and diagonally and only over non prime numbers!
    1
    8 4
    2 6 9
    8 5 9 3

    1 + 8 + 6 + 9 = 24. As you see 1, 8, 6, 9 are all not prime numbers
    and walking over these yields the maximum sum.
    a-) What is maximum sum if you start from top to bottom from below data:
    215
    193 124
    117 237 442
    218 935 347 235
    320 804 522 417 345
    229 601 723 835 133 124
    248 202 277 433 207 263 257
    359 464 504 528 516 716 871 182
    461 441 426 656 863 560 380 171 923
    381 348 573 533 447 632 387 176 975 449
    223 711 445 645 245 543 931 532 937 541 444
    330 131 333 928 377 733 017 778 839 168 197 197
    131 171 522 137 217 224 291 413 528 520 227 229 928
    223 626 034 683 839 53 627 310 713 116 629 817 410 121
    924 622 911 233 325 139 721 218 253 223 528 233 230 124 233

    engin bey yukardaki problem hakkında nasıl bir yol izlenilmeli ??teşekkürler