2009-04-22 4 views
0

Project Euler's Problem 200을 해결하는 알고리즘을 공식화하려고합니다.프로젝트 오일러 문제를 해결하는 데 도움이 필요합니다.

우리 P 및 Q 는 별개 소수가 많은 형태의 , P 2 Q 3이어야하는 sqube를 정의한다. 예를 들어, 200 = 5 2 2 3 또는 = 23 2 61 3 120,072,949.

처음 다섯 squbes 200는 소수 있도록 임의 단일 숫자를 변경할 수있는 제 번호도, 108, 72 200, 392, 흥미롭게 500

이다; 우리는 과 같은 번호로 전화해야한다. 포함하는 다음 주요 증거 sqube는 연속 하위 문자열 "200" 1992008.

는 연속 하위 문자열 "200"를 포함하는 200 프라임 방지 sqube 찾기입니다.

누군가이 문제를 해결할 수 있도록 올바른 방향을 알려 주시겠습니까?

+5

여기있는 사람들은 다른 사람들을 위해 일하는 것에 친절하게 의지하지 않습니다. "이 작품 만들기"이외의 다른 문제가있는 특정 코드 조각을 가지고 있다면, 사람들이 당신을 도울 경향이 있습니다. –

+3

나는 이것을 프레디의 질문으로 바꾸기 위해 최선을 다했다.정말 게으른 초기 질문 문구에도 불구하고 흥미로운 문제입니다. –

+1

동의합니다. 흥미로운 질문입니다. 그리고 오일러 프로젝트가 아직 살아 있다는 것을 상기시켜주었습니다. 그게 마지막으로 방문한 나이였습니다. 누구든지 응답을 제공한다면, psudo 코드로 제발하십시오. , 그리고 최소한 사용자에게 implimentation을 남겨 둡니다. 그것은 완전한 속임수가 아닙니다. – Fusspawn

답변

3

나는 이것이 아주 좋은 질문인지 잘 모르겠다. 그러나 이것은 적어도 당신이 시작해야한다.

에서 알고리즘이에 대한 폭력과 무지의 접근 방식은 매우 간단합니다 :

  1. 시작 소수의 P의 세트
  2. 와 쌍에게 전혀 (P1, P2)를 주문한보고 "squbes"를 생성 (:를 생성하는 동안 당신이 할 수있는 방법을 생각)의 "가 포함되어있는 경우 다시 S에 s의 각
  3. 테스트, 문자열 (200)
  4. 을 찾고 P
  5. 주문이 목록에 P1, P2, 세트 S를 호출 200 "테 t를 한 자리 숫자로 수정하여 프라임인지 확인합니다.
  6. 소수가 소수가 아닌 경우 소수 보증 소수를 찾았습니다. 목록에 넣으면 200 번째를 찾으면 끝났습니다.

여기에 더 흥미로운 것은 무언가를 덜 무력하고 무지하게 할 수 있는지입니다. 첫째로, 위의 (심지어 빠른 primality 테스트 가정) 실용적입니까? 얼마나 빨리 스퀘어가 자라나는지 추정하기는 쉽지만 프라임 프로텍트 프로 그램이나 200을 포함하는 프로 바이더는별로 쉽지 않습니다. 어떤 단축키를 볼 수 있습니까?

재미있게 보내세요!

+0

첫 번째 숫자를 0으로 변경하는 것이 궁금합니다. –

관련 문제