프리마톤이다!

주간 도전 158



Challenge , My solutions

PWC의 3번째 생일을 축하합니다. 아시다시피, 3은 소수이며, 이것이 이번 주 챌린지의 주제입니다.

이번 주에는 상대적으로 간단한 두 가지 작업이므로 많은 설명이 필요하지 않습니다. 두 작업 모두 지난주에 가져온 is_prime 메서드를 사용합니다. 정수가 주어지면 해당 숫자가 정수이면 True/False(Perl에서는 '1'/undef)가 됩니다.

작업 #1 › 첨가제 프라임





모든 더하기 소수 <= 100을 찾는 스크립트를 작성하십시오. 더하기 소수는 소수의 합도 소수인 소수입니다.

내 솔루션



지금까지 찾은 소수가 있는 primes라는 집합(Perl의 해시)이 있습니다. 우리는 숫자의 합이 숫자 자체보다 결코 높지 않다는 것을 알고 있습니다.

1에서 100까지 반복하고 숫자를 primes 집합에 추가합니다. 숫자의 합도 소수이면 additive_primes 목록(Perl의 배열)에 추가합니다.

마지막으로 목록을 출력으로 표시합니다.

예시




$ ./ch-1.py 
2, 3, 5, 7, 11, 23, 29, 41, 43, 47, 61, 67, 83, 89


작업 #2 › 첫 번째 시리즈 Cuban Primes





첫 번째 계열Cuban Primes <= 1000을 계산하는 스크립트를 작성합니다.

내 솔루션



이 작업을 위해 1부터 시작하는 카운터x가 있습니다. 각 숫자에 대해 3x² + 3x + 1를 계산합니다(wikipedia 페이지에서 가져옴). 해당 숫자가 1000보다 크면 루프를 종료합니다. 해당 숫자가 소수이면 cuban_primes 목록에 추가합니다.

이전 작업과 마찬가지로 목록을 인쇄하여 끝냅니다. 예제 끝에 마침표가 있음을 알았습니다. 이것이 의도적인지 아닌지 확실하지 않습니다.

예시




$ ./ch-2.py 
7, 19, 37, 61, 127, 271, 331, 397, 547, 631, 919

좋은 웹페이지 즐겨찾기