Skip to content

Harkonnikova programovaci Mystery Cache

Hidden : 5/12/2013
Difficulty:
4 out of 5
Terrain:
2 out of 5

Size: Size:   small (small)

Join now to view geocache location details. It's free!

Watch

How Geocaching Works

Related Web Page

Please note Use of geocaching.com services is subject to the terms and conditions in our disclaimer.

Geocache Description:

Ke kesce

Kesku na uvodnich souradnicich urcite nenajdete, avsak vyskytuje se nedaleko. Jsem programator, a proto me napadlo vytvorit programovaci kesku. Jsem zvedav, jak vam to pujde. Samozrejme, ze mi to pripada jednoduche, ale clovek, ktery neprogramuje, se urcite trosku zapoti. Jde o modifikovany zdrojovy kod vzaty puvodne z me vlastni diplomove prace. Hodne stesti pri lusteni.

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

namespace PrimeNumbers
{
    internal static class Extensions
    {
        internal static bool IsPrime(this int number)
        {
            if ((number % 2) == 0)
            {
                return number == 2;
            }
            var sqrt = (int)Math.Sqrt(number);
            for (var t = 3; t <= sqrt; t = t + 2)
            {
                if (number % t == 0)
                {
                    return false;
                }
            }
            return number != 1;
        }

        internal static string BuildCoordinates(this double number)
        {
            var strNumber = number.ToString(CultureInfo.InvariantCulture);
            return string.Format("N 50° {0}{1}.{2}{3}{4} E 014° {5}{6}.{7}{8}{9}",
            strNumber[6], strNumber[2], strNumber[0],
            int.Parse(strNumber[5].ToString(CultureInfo.InvariantCulture)) + 1, strNumber[9],
            strNumber[8], strNumber[10],
            int.Parse(strNumber[4].ToString(CultureInfo.InvariantCulture)) + 2, strNumber[3],
            int.Parse(strNumber[3].ToString(CultureInfo.InvariantCulture)) - 4);
        }
    }

    class Program
    {
        static void Main()
        {
            const int initialCount = 3000000;
            var list = new List<int>(initialCount);
            var primeNumbers = new HashSet<int>();
            for (var i = 0; i <= initialCount; i++)
            {
                list.Add(i);
            }
            foreach (var i in list.Where(i => i.IsPrime()))
            {
                primeNumbers.Add(i);
            }
            var number
            = primeNumbers.Aggregate<int, int>(1, (current, count) => count + current);
            Console.WriteLine(number.BuildCoordinates());
        }
    }
}

Additional Hints (Decrypt)

[cz] arcefv an av [en] ba qel cynpr

Decryption Key

A|B|C|D|E|F|G|H|I|J|K|L|M
-------------------------
N|O|P|Q|R|S|T|U|V|W|X|Y|Z

(letter above equals below, and vice versa)