2011-02-16 3 views
0
난 그냥이 아마 내 제한 experince과 함께 할 수있는 뭔가가 있었다 (그 결과로 무엇을 이해하지 않습니다에 전화 번호를 알아 낸 있도록 here

Greplin 프로그래밍 도전 Lv.2

좋아 위치한

도전 그래서

) mathamatics에 내가 전화를 통해 주어진 것보다 첫 국무 피보나치 수의 큰 CALC

그래서 그 번호를 이제 X

하지만 아래의 "합 서 있지 않는 전화를 할 수 있습니다 총리 보좌관 1 "

나는 X가 주요 devisors 1이기 때문 그래서 거기에 소수 및 X 그것을 이해

의 (X + 1) 다음 devisors을 찾을 수 (배열 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

내가 대답 읽기 그리워은 숫자 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; 
     } 
관련 문제