2011-02-16 144 views
0

挑战位于hereGreplin的编程挑战赛LV.2

好了,所以我想通了,要拨打的号码在我只是不明白如何处理结果做(这大概可以有一些与我有限的遭遇在mathamatics)

所以我calc下比在电话中给出的一个较大的第一任Fibonacci数

所以让我们称之为数x

,但现在我不站下了“的总和主要负责人+1"

我理解X是素数,以便那里的素除数是1和X

除非其(X + 1),以便然后找到除数(数组d)然后在找到的d数字这是黄金(阵列Pd)的

PD1 +的Pd 2 =答案

难道我吠叫右树?

我的源代码迄今(我可以提供的是如果需要的话我认为它不是主要的代码)

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

我想读答案是的数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; 
     }