큰 숫자, 작은 숫자
2232 단어 perlpythontheweeklychallenge
주간 도전 176
Challenge , My solutions
작업 1: 순열 배수
일
x
, x
, 2x
, 3x
, 4x
및 5x
가 서로의 배수가 되는 가장 작은 양의 정수 6x
를 찾는 스크립트를 작성하십시오.내 솔루션
이것은 더 빠르게 만들기 위해 과도하게 엔지니어링할 수 있는 한 가지 과제입니다. 해결책을 순식간에 찾을 수 있다는 점을 고려하면 이것은 필요하지 않습니다.
예를 들어 1,666 이후에 가능한 다음 솔루션은 100,000입니다. 1667 × 6은 원래 숫자의 순열일 수 없는 5자리 숫자가 됩니다.
숫자가 순열인지 확인하는 가장 쉬운 방법은 단순히 숫자를 숫자로 정렬하는 것입니다. Python에서는
''.join(sorted(str(num)))
로 이 작업을 수행할 수 있습니다. Whilejoin '', sort split //, $num
은 Perl에서도 비슷한 일을 합니다.많은 도전 과제와 마찬가지로 저는 1부터 시작하여 해결책을 찾을 때까지 증가하는 카운터를 가지고 있습니다. 각 숫자에 대해 2에서 6을 곱한 숫자가 원래 숫자의 순열인지 파악하고 그렇지 않은 경우 내부 루프를 종료합니다.
마지막으로 솔루션을 찾으면 인쇄하고
main()
함수를 종료합니다.알고 계셨나요? 솔루션 (142,857)에는 고유한 Wikipedia page이 있습니다.
예
$ ./ch-1.py
142857
$ ./ch-1.pl
142857
작업 2: 뒤집을 수 있는 숫자
일
100 미만의 모든 가역수를 찾는 스크립트를 작성하세요. 숫자와 그 역수의 합이 홀수만 있는 경우 숫자를 가역수라고 합니다.
내 솔루션
이것은 비교적 간단한 도전 과제입니다. 1부터 99까지 세고 숫자가 뒤집을 수 있는 숫자인 경우
solutions
목록에 추가합니다.파이썬에는 정수를 뒤집는 쉬운 방법이 없기 때문에 문자열로 변환하고
int(str(num)[::-1])
를 사용하여 다시 정수로 변환합니다. Perl에서는 reverse
메서드를 사용하면 됩니다. 숫자가 홀수인지 확인하기 위해 정규식^[13579]+$
과 비교합니다.그런 다음
solutions
목록의 모든 숫자를 인쇄합니다.예
$ ./ch-2.py
10, 12, 14, 16, 18, 21, 23, 25, 27, 30, 32, 34, 36, 41, 43, 45, 50, 52, 54, 61, 63, 70, 72, 81, 90
$ ./ch-2.pl
10, 12, 14, 16, 18, 21, 23, 25, 27, 30, 32, 34, 36, 41, 43, 45, 50, 52, 54, 61, 63, 70, 72, 81, 90
Reference
이 문제에 관하여(큰 숫자, 작은 숫자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/simongreennet/big-number-small-numbers-49h4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)