# 소수 숫자 그리드

> Clean Markdown view of GeekNews topic #22643. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=22643](https://news.hada.io/topic?id=22643)
- GeekNews Markdown: [https://news.hada.io/topic/22643.md](https://news.hada.io/topic/22643.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-08-21T10:17:21+09:00
- Updated: 2025-08-21T10:17:21+09:00
- Original source: [susam.net](https://susam.net/primegrid.html)
- Points: 3
- Comments: 1

## Topic Body

- **소수 숫자 그리드**는 소수의 패턴과 구조를 시각적으로 보여주는 **도구**임
- 이 그리드는 숫자를 2차원 형태로 배열하여, **소수가 분포하는 방식**을 한눈에 파악할 수 있음
- 패턴을 분석함으로써 **소수의 규칙성 또는 무작위성**에 대한 인사이트 확보 가능함
- **프로그래밍/수학 학습자**에게 소수 이론을 직관적으로 이해하는 데 도움이 됨
- 다양한 각도에서 소수 분포를 탐구하는 데 **참조 자료**로 활용 가능함

---

### 소수 숫자 그리드 개요

- 이 도구는 숫자들을 2차원 그리드 형태로 배열한 뒤, 각 칸이 소수인지 여부를 시각적으로 구분하는 목적임
- 사용자는 각 행과 열의 범위를 지정해 다양한 크기와 형태의 그리드를 생성 가능함
- 그리드 내에서 소수는 색상이나 표시로 뚜렷하게 구분되며, 이를 통해 소수들이 어떻게 분포하는지 한눈에 확인 가능함
- 규칙적인 분포, 대각선, 클러스터 등의 패턴 탐구가 쉬워지며, 이는 수학적 직관을 높이는 자료임
- 해당 도구는 개발자와 학생들이 알고리듬 또는 시각화 작업에서 참조할 만한 소스를 제공함

### 특징 및 활용 예시

- 각 숫자의 위치는 빠르게 소수인지 판별된 결과를 반영함
- 대량의 수를 한 번에 처리하여, 큰 수의 소수 분포까지 탐색 가능함
- 다양한 그리드 모양(정사각형, 직사각형 등)으로 커스터마이즈가 쉬움
- 수학 교령, 알고리듬 연구, 시각적 프레젠테이션 등에서 학습 및 분석 자료로 중요함
- 수학적 탐구뿐 아니라, 프로그래밍 도전 과제나 인터뷰 등 다양한 분야에서 활용 가능함

## Comments



### Comment 42739

- Author: neo
- Created: 2025-08-21T10:17:21+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=44949162) 
- 안녕하세요! 어젯밤 재미삼아 이 간단한 소수 격자 시각화 툴을 만들었음. 며칠 전에 우연히 발견한 "Show HN" [게시글](https://news.ycombinator.com/item?id=44888548)에서 영감을 받았음. Miller-Rabin 소수 판별법을 사용하고, [OEIS 시퀀스 A014233](https://oeis.org/A014233)에 나온 소수를 베이스로 삼아 3317044064679887385961980까지도 소수 판별 가능함. 예시로 [이 링크](https://susam.net/primegrid.html#3317044064679887385961781-20-10)를 참고할 수 있음. 거기에서 보이는 세 개의 원은 아래 소수를 의미함:
  3317044064679887385961783  
  3317044064679887385961801  
  3317044064679887385961813  
이게 여러분에게도 재미를 주길 바람

  - 시각화 정말 멋짐! 마우스를 점 위에 올렸을 때 어떤 소수인지 알려주는 기능이 추가되면 좋겠음. 그리고 각 행마다 열의 개수를 X씩 늘리면(혹은 X를 소수로 하거나) 새로운 패턴이 관찰될지 궁금함

  - 만들어줘서 고마움! 열 개수를 빠르게 올려가며 반복되는 패턴, 작은 소용돌이 움직임이나 크게 휘어지는 선들을 발견하는 게 정말 재미있음. 어렸을 때 수학의 논리 퍼즐 요소를 정말 좋아했는데, 고등학교 후반부와 대학에서 수학이 점점 더 추상적으로 다가오면서 어렵게 느껴졌었음. 이렇게 시각화해주는 도구가 있었으면 수학적 개념을 더 구체적으로 느끼고 수식 뒤에 숨겨진 관계에 계속 호기심을 가졌을 것 같음

  - 숫자 진법을 16이나 다른 진법으로 바꿔볼 수 있는 기능도 있다면 정말 흥미로울 것 같음. 어떤 패턴 변화가 생길지 너무 궁금해짐

  - 너무 멋짐! 너가 만든 걸 보고 나도 패턴을 직접 찾아보겠다고 시각적으로 엄청 파고들었음 :D 근데 열과 행을 마음대로 정렬할 수 있으니 결국 내 시도는 별 의미가 없었던 것 같음 :D

- 이상한 방식 하나 소개함: 정수를 100개씩 묶은 pack 단위로 봄. pack 안에 소수가 있으면 검은색, 없으면 빨간색으로 칠함. 첫 pack에는 100개의 연속된 정수가, 두 번째에는 두 수마다 하나씩, 세 번째에는 세 수마다 하나씩 등등 들어감. 각 pack은 이전 pack이 끝난 곳에서 이어서 시작함. 1행에는 pack 하나, 2행에는 두 개, 3행에는 세 개... 이런 식임. [여기에 그림 있음](https://www.gibney.org/parallax_primes). 마치 다른 우주의 상형문자처럼 보임. 왜 이렇게 생기는지 아직 잘 모름. 랜덤 분포와 비교하려면 코드를 이렇게 바꿔볼 수 있음:
  if (isPrime(myNum)) return 1;
를
  if (Math.random()>0.99) return 1;
로 바꿔보면 확연히 다름. 소수 기반 패턴의 대칭성과 성질이 도대체 어디서 온 건지 정말 궁금함

  - [이 댓글](https://news.ycombinator.com/item?id=17106193)이 그림에 대한 설명을 잘 해줌. 본질적으로는 gcd(x,y)를 시각화한 것이고, 소수와 거의 상관없음. 이 사실을 알면 많은 패턴의 원인을 더 쉽게 이해할 수 있음. 그래도 정말 흥미로운 시각화임

  - 설명이 링크된 코드와 조금 다름. N번째 pack이 N씩 떨어진 정수로 채워지는 게 아니라, N번째 행의 각 pack마다 N씩 떨어진 정수를 포함하고 있음. 예를 들어 두 번째 행의 첫 번째 pack은 {101, 103, 105, ..., 299}, 두 번째 pack은 {102, 104, 106, ..., 300} 임. 이런 원리를 이해하면 패턴이 [이 댓글](https://news.ycombinator.com/item?id=17106193)에서 잘 설명됨

  - 이 아이디어에 꽤 빠져들었음. 처음에는 Ulam 나선이라고 쉽게 연결될 줄 알았는데, 이쪽 rabbit hole은 다항식 잔여와 신비로운 "Conjecture F"에 닿음([설명](https://en.wikipedia.org/wiki/Ulam_spiral#Explanation)). parallax primes는 [이 링크](https://www.novaspivack.com/science/we-have-discovered-a-new-pattern-in-the-prime-numbers-parallax-compression)에서 더 자세한 설명과 관련된 배경 지식, 특히 [이 페이지](https://www.cut-the-knot.org/Curriculum/Arithmetic/PrimesFromTriangle.shtml)에서 기하학적으로 해석되는 부분이 특히 만족스러웠음

  - 이런 방식으로 가지고 놀아봤음: [예시](https://g.co/gemini/share/b1979827dbe8). 짝수 또는 홀수 pack만 반복하면 패턴이 실제로 수렴하는 걸 발견함. 정말 신기함

- Ulam 나선도 한번 그려보는 걸 제안하고 싶음 [Ulam spiral wiki](https://en.wikipedia.org/wiki/Ulam_spiral). 그리고 만약 이게 Conway의 생명 게임(Game of Life)의 초기 상태라면, 흥미로운 패턴이 진화할지 정말 궁금함. 다양한 크기의 시작 격자를 brute-force로 돌려보면 몇 스텝 이상 유지되는 게임을 골라 사람이 직접 관찰할 수도 있을 거라 생각함. 혹시 소수의 특정 작은 격자 또는 나선이 특별한 무언가를 발생시키면 HN이 들썩일지도 모르겠음

  - 완전히 같은 건 아니지만, 10여 년 전에 만들어본 Ulam 나선 생성기가 있음. [링크](https://embed.plnkr.co/mdZX6C/). 이건 소수만 찍는 게 아니라, 각 위치의 숫자가 가진 짝수인 약수의 개수에 따라 점 크기가 결정됨

  - Ulam 나선에 한 표를 더 보냄. 처음에 왜 대각선이 안 보이는지 의아했음. 원래 Ulam 나선을 예상했었음

  - [또다른 Ulam spiral 도구](https://www.alpertron.com.ar/ULAM.HTM)

- 소수에 대한 내 직관은 정말 빨리 희귀해진다고 생각했는데, 실제로는 소수가 엄청 많음

  - 소수는 실제로 점점 더 찾기 힘들어짐. 예를 들어 모든 소수를 한 행에 그려보면 그 차이를 확실히 볼 수 있음([여기 참고](https://susam.net/primegrid.html#1-1-1000000)). 정수론에서 유명한 소수정리(Prime number theorem)도 이걸 다루고 있음. n 이하의 소수 개수는 n/log n에 근사하고, n 근처의 소수 밀도는 1/log n에 수렴함. [내 소수정리 설명](https://susam.net/journey-to-prime-number-theorem.html#prime-number-theorem)과 [위키피디아](https://en.wikipedia.org/wiki/Prime_number_theorem)도 참고할 수 있음

  - 이 주제는 정말 많은 연구가 이루어졌음 [위키피디아](https://en.m.wikipedia.org/wiki/Prime_number_theorem)

  - 대부분 사람들이 그렇게 생각함. 소수를 찾기 어렵다고 배우기 때문이라고 봄. 사실 소수를 찾는 건 어렵지 않음. 우리가 생각하기에 인티저가 소수인지 판별하는 게 어렵게 느껴지는 것 뿐임. 사실 제곱수보다 소수가 더 많음

- cols(열) 값이 소수가 되면 패턴이 멋지게 드러남

  - columns가 소수 p가 되면 각 열의 숫자가 p로 나눈 나머지가 똑같아짐. 그래서 p의 배수가 소수가 아니게 되면서 대각선 패턴이 생기게 됨

  - 열이 소수라기보단 cols+1 또는 cols-1이 약수가 많을 때(예: 25, 91, 119)에도 흥미로운 패턴이 나옴. 소수 근처의 숫자들이 약수가 많은 것도 흥미로움

  - 열이 7일 때 오른쪽 위에서 왼쪽 아래로 가는 대각선이 많이 보이고, 열이 5일 때는 왼쪽 위에서 오른쪽 아래로. 연속된 sexy prime의 빈도도 궁금함. 큰 숫자에서는 이 패턴이 깨질지 알고 싶음

  - cols % 30 == 0 (30, 60, 90, 120 등)일 때의 패턴이 정말 흥미로움. 직선 세로줄이 뚜렷함. 1만 더하거나 빼면(119나 121) 줄이 왼쪽 또는 오른쪽으로 “회전”하는 것처럼 보임. 정말 멋진 시각화 도구임

  - 보이는 대부분의 패턴은 사실 소수 특성이 아님. 처음 100개의 자연수로 나누어 떨어지지 않는 수만 표시해도 거의 비슷한 그림이 나옴

- 최근에 나도 소수 시각화 툴을 만들어봄:  
[https://ilmenit.github.io/prime-fold/](https://ilmenit.github.io/prime-fold/)  
시각화뿐만 아니라 진화 알고리즘과 피트니스 함수로 소수를 생성하거나 포함하는 수학 함수를 찾아내는 도구임.  
PrimeFold 모드(2D 임베딩): f_x(n), f_y(n) 두 함수를 입력하거나 진화시켜서 숫자를 2D 좌표로 매핑함. 소수와 합성수를 다르게 시각화함. 예: f_x(n) = n, f_y(n) = n^2.  
PrimeGen 모드(1D 생성): f(n) 하나만 입력하거나 진화시켜서 숫자 시퀀스를 만듦. 각 출력값이 소수인지와 고유 소수 개수를 시각화해줌. 예: f(n) = 2*n + 1

- 1, 7, 100으로 설정하면 스타게이트의 체브론(chevron)처럼 별자리 틱커테이프를 보는 느낌임 :D

- [이 링크](https://susam.net/primegrid.html#1-200-330)에서 zoom out 하고 cols 값을 하나씩 늘리고 줄여 보면 패턴 변화가 관찰됨. -7부터 +5까지의 변화가 인상적임. #1-200-420에서도 동일함

- 심심풀이로 python으로 연속된 소수의 일의 자리 수(10진법)를 비교해 본 결과 흥미로운 관계를 발견함. 2랑 5는 한번씩만 등장하니 제외하고, 1->3, 1->5, ... 등 각 자리수간 이동을 빈도로 세어 봤음. 소수는 무작위라고 생각해서 거의 빈도가 같을 거라 생각했으나, 오히려 통계적으로 유의미한 차이가 있었음. 왜 그런지는 아직 아무도 모름

- 내 직감으로는 소수가 훨씬 더 드물고, 숫자가 커질수록 그 감소율도 훨씬 빠르다고 생각했으나, 실제로는 여전히 엄청 많음. [1, 10,000, 10,000]에서도 아래쪽은 꽤 촘촘함. 물론 덜 촘촘해지긴 함. 평균 소수 간격은 `log(n)`임 ([prime number theorem](https://en.wikipedia.org/wiki/Prime_number_theorem))
