숫자가 소수인지 시각적으로 확인하는 데 사용할 수있는 NxN 격자 간격과 밑줄을 만듭니다. (N은 양의 정수일 수 있습니다.)
이 그리드에는 세 가지 간단한 규칙이 있습니다.
- n 번째 열에는 n-1 밑줄의 반복 된 패턴과 한 공백이 포함됩니다. 이 패턴은 첫 번째 행에서 시작하고 행 N에서 패턴 중간에 중지됩니다 (행과 열은 1 색인화 됨).
- 첫 번째 열은 모든 공백 대신 모든 밑줄로 바뀝니다.
- 행 인덱스가 열 인덱스와 같은 위치에 공백이 있으면 밑줄로 바뀝니다.
예 : N = 10
1
1234567890 <-- column indices
1__________
2__________
3__________
4_ ________
5__________
6_ _______
7__________
8_ _ ______
9__ _______
10_ __ _____
^ row indices
지수는 명확성을위한 것입니다. 일반 그리드 자체 (프로그램이 출력해야하는 것)는 다음과 같습니다.
__________
__________
__________
_ ________
__________
_ _______
__________
_ _ ______
__ _______
_ __ _____
그것을주의해라:
- 첫 번째 열은 모두 밑줄입니다.
- 두 번째 열은 2 행의 밑줄을 제외하고 밑줄 공간, 밑줄 공간 등이됩니다.
- 세 번째 열은 3 행의 밑줄을 제외하고 밑줄 밑줄, 밑줄 밑줄 등입니다.
- 기타
또한 1 외에도 소수 열에 만 모든 열에 밑줄이 있습니다.
밑줄은 전체 글꼴 너비에 걸쳐 있으므로 각 소수 행은 연속적인 실선을 형성합니다. 따라서 숫자가 소수인지 확인하는 것은 시각적으로 매우 쉽습니다. 모든 열에 걸쳐 선이 실선인지 확인하십시오. (사실 행 인덱스의 제곱근을 찾으면 충분하지만 그 그리드를 출력하는 것은 덜 우아해 보입니다.)
프로그램
stdin (또는 가장 가까운 대안)을 통해 N이 주어진 그리드를 그릴 프로그램을 작성하십시오. 출력은 stdout (또는 가장 가까운 대안)으로 이동하고 선택적인 후행 줄 바꿈과 함께 공백, 밑줄 및 줄 바꿈 만 포함해야합니다.
가장 짧은 코드가 승리합니다.
n
열 번째의 할 k
경우 일 문자 공간 k
의 제수입니다 m
즉 1 아닙니다 m
.