알아야 할 사항 :
먼저 행운의 숫자.
행운의 숫자는 다음과 같이 생성됩니다.
모든 자연수를 취하십시오.
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20...
그런 다음 두 번째 숫자를 제거하십시오.
1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39...
이제 3
안전합니다.
세 번째 숫자를 모두 제거하십시오.
1, 3, 7, 9, 13, 15, 19, 21, 25, 27, 31, 33, 37, 39, 43, 45, 49, 51, 55, 59...
이제 7
안전합니다.
모든 7 번째 숫자를 제거하십시오.
제거 후 첫 번째 안전한 번호 인 모든 n
번호를 계속 n
제거하십시오.
안전한 숫자의 마지막 목록은 행운의 숫자입니다.
불행한 숫자는 별도의 숫자 목록으로 구성됩니다 [U1, U2, U3... Un]
.
U1
운이 좋은 "후보자"에서 제거 된 첫 번째 숫자 집합이므로 다음과 같습니다.
2, 4, 6, 8, 10, 12, 14, 16, 18, 20...
U2
제거 된 두 번째 숫자 세트입니다.
5, 11, 17, 23, 29, 35, 41, 47, 53, 59...
그리고 등등 등등 ( U3
세번째리스트, U4
네번째 등)
도전:
당신의 작업은 두 개의 입력을 주어 때, m
그리고 n
의 생성 m
목록에 일 수를 Un
.
입력 및 출력 예 :
(5, 2) -> 29
(10, 1) -> 20
명세서:
- 프로그램은
m
최대1e6
및n
최대 작동해야합니다100
.- 당신은 둘 것을 보장
m
하고n
양의 정수입니다. - 궁금하다면
U(1e6, 100)
=5,333,213,163
. (@pacholik 감사합니다!)
- 당신은 둘 것을 보장
- 귀하의 프로그램은 합리적인 최신 컴퓨터에서 하루 안에이를 계산해야합니다.
이것은 code-golf 이므로 바이트 단위의 가장 짧은 코드가 이깁니다!
추신 : 누군가가 이것을 생성하는 일반적인 공식을 생각해 내면 좋을 것입니다. 수식이 있으면 답에 넣으십시오!
(1e6,1e6)
?
n=1
케이스 에서 작동하지 않는 것이 허용 됩니까? 이것은 다른 모든 경우에 특별하기 때문에 다음 운수의 0 기준 인덱스는 n-1
입니다.