주간 챌린지 089
작업 #1 › GCD 합계
일
양의 정수$N
가 제공됩니다. 1과 $N
사이의 가능한 모든 고유 쌍의 GCD를 합산하는 스크립트를 작성하십시오.
내 솔루션
이것은 비교적 간단합니다. 가능한 모든 고유 쌍은 1에서 $N
- 2 사이의 첫 번째 숫자로 계산할 수 있으며 두 번째 숫자는 첫 번째 숫자보다 하나 더 많은 $N
까지 계산할 수 있습니다.
그런 다음 이 조합에 대한 GCD를 계산하는 문제입니다. 이를 위해 나는 두 개의 숫자 중 최소값을 취하고 하나의 숫자로 거꾸로 작업하는 서브루틴_gcd
을 가지고 있습니다. 나머지 없이 두 숫자로 나눌 수 있는 첫 번째 값을 반환합니다.
예
» ./ch-1.pl 3
3
» ./ch-1.pl 4
7
작업 #2 › 마법의 매트릭스
일
아래와 같이 1~9의 숫자로 행렬을 표시하는 스크립트를 작성하세요. 숫자는 한 번만 사용하는지 확인하세요.
[ a b c ]
[ d e f ]
[ g h i ]
따라서 다음을 만족합니다.
a + b + c = 15
d + e + f = 15
g + h + i = 15
a + d + g = 15
b + e + h = 15
c + f + i = 15
a + e + i = 15
c + e + g = 15
내 솔루션
내 첫 번째 생각은 이것을 무차별 대입하는 것이 었습니다. 가능한 순열은 9입니다! = 362880이고 반쯤 괜찮은 컴퓨터라도 이것을 꽤 빨리 알아낼 수 있습니다.
그러나 더 빠르게 만들기 위해 약간 다른 접근 방식을 취했습니다.
» ./ch-1.pl 3
3
» ./ch-1.pl 4
7
일
아래와 같이 1~9의 숫자로 행렬을 표시하는 스크립트를 작성하세요. 숫자는 한 번만 사용하는지 확인하세요.
[ a b c ]
[ d e f ]
[ g h i ]
따라서 다음을 만족합니다.
a + b + c = 15
d + e + f = 15
g + h + i = 15
a + d + g = 15
b + e + h = 15
c + f + i = 15
a + e + i = 15
c + e + g = 15
내 솔루션
내 첫 번째 생각은 이것을 무차별 대입하는 것이 었습니다. 가능한 순열은 9입니다! = 362880이고 반쯤 괜찮은 컴퓨터라도 이것을 꽤 빨리 알아낼 수 있습니다.
그러나 더 빠르게 만들기 위해 약간 다른 접근 방식을 취했습니다.
다른 Team PWC 멤버들이 이 작업을 어떻게 처리할지 기대됩니다.
예
» ./ch-2.pl
[ 6 1 8 ]
[ 7 5 3 ]
[ 2 9 4 ]
Reference
이 문제에 관하여(주간 챌린지 089), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/simongreennet/weekly-challenge-089-f3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)