0

挑战位于此处

好的,所以我想出了要打电话的号码我只是不明白如何处理结果(这可能与我在数学方面的有限经验有关)

所以我计算出第一个大于电话给出的斐波那契数

所以让我们叫那个号码x

但现在我不明白“素数除数之和+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;  
        }
4

1 回答 1

1

我错过了答案是数字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;
        }
于 2011-02-16T22:05:51.347 回答