숫자에 관한 모든 것
2342 단어 perlpythontheweeklychallenge
주간 도전 169
Challenge , My solution
긴 휴식을 마치고 돌아왔습니다. 더 이상 고민하지 않고 이번 주에 두 가지 챌린지를 살펴보겠습니다.
작업 1: 화려한 숫자
일
처음 20개의 Brilliant Numbers를 생성하는 스크립트를 작성하십시오.
브릴리언트 넘버는 같은 길이의 두 소인수를 가진 숫자입니다.
숫자는 정확히 두 개의 소인수를 가져야 합니다. 즉, 동일한 길이의 두 소수의 곱입니다.
내 솔루션
이것은 우리가 그렇게 작은 숫자를 다루고 있다는 것을 감안할 때 무차별 대입하는 것이 더 쉬운 작업 중 하나입니다. 기본 함수에는 소수의 길이에 대한 값
l
이 있습니다. 그런 다음 get_bril_nums
함수를 호출하여 모든 훌륭한 숫자를 얻습니다.이 작업은 다음 세 단계로 수행됩니다.
l
인 모든 소수를 가져옵니다. 적어도 20개의 숫자가 계산될 때까지 계속 이 작업을 수행합니다(우리가 알고 있듯이
l == 2
). 그런 다음 처음 20개의 숫자를 인쇄합니다.예시
$ ./ch-1.py
4, 6, 9, 10, 14, 15, 21, 25, 35, 49, 121, 143, 169, 187, 209, 221, 247, 253, 289, 299
작업 2: 아킬레스 수
일
처음 20개Achilles Numbers를 생성하는 스크립트를 작성합니다.
내 솔루션
이 작업은 첫 번째 작업보다 더 어려운 작업이며 작성 당시 Mohammad의 설명이 정확하지 않다는 점을 강조했습니다. 나는 그를 가지고 있으니 잘만되면 고쳐질 것입니다.
이 작업을 위해 20개의 숫자를 찾을 때까지 증가하는 카운터를 사용하여
is_achilles_number
를 계속 호출합니다. 이 기능은 다음을 수행합니다.factors
사전(Perl의 해시)에 고유한 소인수를 가져옵니다. powers
집합(Perl의 배열)을 검정력 값으로 설정합니다. 이 시점에서 우리는 더 이상 소인수에 대해 신경쓰지 않습니다. False
를 반환합니다(Perl에서는 undef). False
를 반환합니다(undef). True
. 예시
$ ./ch-2.py
72, 108, 200, 288, 392, 432, 500, 648, 675, 800, 864, 968, 972, 1125, 1152, 1323, 1352, 1372, 1568, 1800
Reference
이 문제에 관하여(숫자에 관한 모든 것), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/simongreennet/its-all-about-the-numbers-4fh5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)