Greplin Programming Challenge Lv.2 - PullRequest
       26

Greplin Programming Challenge Lv.2

0 голосов
/ 16 февраля 2011

Вызов находится здесь

Хорошо, я вычислил номер, по которому нужно позвонить. Я просто не понимаю, что делать с результатом (возможно, это как-то связано с моим ограниченным опытом в математике)

поэтому я вычисляю первое число Фибоначчи Прайма больше, чем указано по телефону

так давайте назовем этот номер х

но теперь я не понимаю "сумму простых девиаторов +1"

как я понимаю, X простое число, так что для простых девиаторов 1 и X

если только его (x + 1) затем найти отклонители (массив D), то найти числа в D, которые являются простыми (массив Pd)

Pd1 + Pd2 = ответ

Я лаю на правильное дерево?

Мой исходный код (я могу предоставить простой код, если необходимо, я предполагаю, что нет)

 private static long CalcPassword2(long p)
        {
            p++;
            List<int> factors = new List<int>();

            for (int i = 1; i <= p; i++)
            {
                if (p % i == 0)
                    if (isprime(i))
                    {
                        factors.Add(i);
                    }
            }
            if (factors.Count >= 2)
            {
                factors.Sort();
                factors.Reverse();
                return factors[0]+factors[1];
            }

                return 1;  
        }

1 Ответ

1 голос
/ 17 февраля 2011

Я скучаю, прочитайте ответ - сумма всех простых факторов числа x

Вот обновленный код: (пожалуйста, не стесняйтесь комментировать код)

private static long CalcPassword2(long p)
        {
            p++;
            List<int> factors = new List<int>();

            for (int i = 1; i <= p; i++)
            {
                if (p % i == 0)
                    if (isprime(i))
                    {
                        factors.Add(i);
                    }
            }
            int answer = 0;
            foreach (int prime in factors)
            {
                answer = answer + prime;
            }
            return answer;
        }
...