길이 N인 0과 1 문자열 중 밑 2부터 10까지의 값이 모두 합성수인 것 J개를 사전순으로 출력하고, 각 밑에 대한 가장 작은 소인수를 함께 출력한다.
쉬움3완전 탐색수학정수론구현아직 제출이 없습니다시간 제한5초메모리 제한512 MB잼코인은 길이가 N≥2인 숫자 문자열 중 다음 조건을 모두 만족하는 것이다.
0 또는 1이다.1이다.0과 1로 이루어진 문자열이 모두 잼코인인 것은 아니다. 예를 들어 101은 2진법으로 해석하면 5이고 5는 소수이므로 잼코인이 아니다. 반면 1001은 잼코인이다. 2진법부터 10진법까지 차례로 해석하면 9, 28, 65, 126, 217, 344, 513, 730, 1001이고 이 중 소수는 하나도 없다.
잼코인을 화폐로 쓰는 공동체가 있다고 한다. 잼코인을 보낼 때는 2진법부터 10진법까지 각 진법으로 해석한 값의 자명하지 않은 약수를 함께 보내 그 잼코인이 진짜임을 증명하는 것이 예의다. 양의 정수 K의 자명하지 않은 약수란 K를 나누어떨어지게 하는 양의 정수 중 1과 K가 아닌 것이다. 약수는 모두 10진법으로 나타낸다.
예를 들어 위의 잼코인 1001에 대해 2진법부터 10진법까지의 해석값의 자명하지 않은 약수로 차례로 3, 7, 5, 6, 31, 8, 27, 5, 77을 고를 수 있다.
길이가 N인 서로 다른 잼코인 J개를 그 증명과 함께 출력하라. 이 문제에서는 답이 하나로 정해지도록 출력 형식에서 설명하는 규칙을 따라야 한다.
첫째 줄에 테스트 케이스의 수 T가 주어진다. 이어서 T개의 줄에 걸쳐 각 테스트 케이스가 주어지며, 각 줄에는 두 정수 N과 J가 있다.
제한
각 테스트 케이스마다 J+1개의 줄을 출력한다. 첫 줄에는 Case #x:만 출력한다. x는 1부터 시작하는 테스트 케이스 번호다. 나머지 J개의 줄에는 각각 길이가 N인 잼코인 하나와 정수 9개를 공백으로 구분해 출력한다. 9개 중 i번째 정수(i는 1부터 센다)는 그 잼코인을 i+1진법으로 해석한 값의 자명하지 않은 약수여야 한다.
답이 하나로 정해지도록 다음 규칙을 따른다.
출력하는 잼코인은 모두 서로 달라야 한다.
예제에서는 설명을 쉽게 하려고 N과 J를 작게 잡았다.
100001, 100011, 100111, ... 순이다. 100101은 2진법으로 해석하면 37이고 37은 소수이므로 잼코인이 아니다.110111도 잼코인이 아니다. 3진법으로 해석하면 1×243+1×81+0×27+1×9+1×3+1×1=337이고 337은 소수다.10101은 잼코인이지만 010101은 1로 시작하지 않으므로 잼코인이 아니다.101010은 1로 끝나지 않으므로 잼코인이 아니다.100011을 2진법으로 해석하면 35=5×7이다. 1과 35는 자명한 약수이고 7은 가장 작은 약수가 아니므로 100011 바로 다음에는 5를 출력한다.