MCP HubMCP Hub
스킬 목록으로 돌아가기

analyze-prime-numbers

pjt222
업데이트됨 Yesterday
1 조회
17
2
17
GitHub에서 보기
테스팅testing

정보

이 스킬은 소수 분석을 위한 알고리즘을 제공하며, 여기에는 소수 판별, 인수분해, 분포 연구 등이 포함됩니다. 이 스킬은 소수 검증, 소인수 찾기, 특정 범위까지의 소수 목록 생성과 같은 작업을 위해 시행 나눗셈, 밀러-라빈, 에라토스테네스의 체 등의 방법을 구현합니다. 정수론적 계산, 증명 작업, 또는 코드에 소수 분석 기능을 통합해야 할 때 사용하십시오.

빠른 설치

Claude Code

추천
기본
npx skills add pjt222/agent-almanac -a claude-code
플러그인 명령대체
/plugin add https://github.com/pjt222/agent-almanac
Git 클론대체
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/analyze-prime-numbers

Claude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요

문서

析質數

藉為當下任務擇宜之演算法(質性測試、整數分解或質數分佈分析),析質數。以計算驗結果並將發現繫於質數定理。

適用時機

  • 判給定整數為質或合
  • 尋整數之完整質因式分解
  • 計或列至給定界之質數
  • 為特定範圍驗質數定理之近似
  • 析數論證明或計算中質數之性質

輸入

  • 必要:欲析之整數,或分佈分析之上界
  • 必要:任務類型——質性測試、分解或分佈分析之一
  • 選擇性:偏好之演算法(試除、Miller-Rabin、Eratosthenes 篩、Pollard rho)
  • 選擇性:是否產質性之形式證明,抑或僅計算裁決
  • 選擇性:輸出格式(因子樹、質數列、計數、表)

步驟

步驟一:判任務類型

將請求歸為三類之一並擇宜之演算路徑。

  1. 質性測試:給單一整數 n,判 n 為質否
  2. 分解:給合數 n,尋其完整質因式分解
  3. 分佈分析:給界 N,析至 N 之質數(計、列、間距、密度)

記任務類型與輸入值。

預期: 清晰之分類,輸入值已記。

失敗時: 若輸入曖昧(如「析 60」),請使用者澄清欲質性測試、分解或分佈分析。對合數預設為分解,對疑似質數預設為質性確認。

步驟二:施質性測試(若任務 = 質性)

以合於 n 之大小之演算法測試 n 是否為質。

  1. 處理瑣碎情況:n < 2 非質。n = 2 或 n = 3 為質。若 n 偶且 n > 2,為合
  2. 小 n(n < 10^6):用試除
    • 對至 floor(sqrt(n)) 之一切質數 p 試整除
    • 優化:先試 2,後試奇數 3、5、7…,或用 6k +/- 1 輪
    • 若無除數現,n 為質
  3. 大 n(n >= 10^6):用 Miller-Rabin 機率測試
    • 寫 n - 1 = 2^s * d,d 奇
    • 對每見證 a 於 {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37}:
      • 計 x = a^d mod n
      • 若 x = 1 或 x = n - 1,此見證通過
      • 否則平方 x 至 s - 1 次。若 x 等於 n - 1 過,則通過
      • 若無通過,n 為合(a 為見證)
    • 對 n < 3.317 * 10^24,見證 {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37} 給確定結果
  4. 記裁決:質或合,附見證或證書

小質數參考(前 25):

IndexPrimeIndexPrimeIndexPrime
1210291967
2311312071
3512372173
4713412279
51114432383
61315472489
71716532597
8191759
9231861

預期: 確定之答(質或合),附所用演算法與所尋見證或除數。

失敗時: 若 Miller-Rabin 報「可能為質」而需確定,升至確定性測試(如 AKS 或 ECPP)。對試除,若計算過慢,改 Miller-Rabin。

步驟三:施分解(若任務 = 分解)

將 n 完整分解為其質冪分解。

  1. 以試除提小因子
    • 盡能將 2 除出,記指數
    • 將奇質數 3、5、7、11… 除出至截止(如 10^4 或 sqrt(n),若 n 小)
    • 每除後更新 n 為餘餘因子
  2. 若餘因子 > 1 且 < 10^12:續試除至 sqrt(餘因子)
  3. 若餘因子 > 1 且 >= 10^12:施 Pollard rho 演算法
    • 擇 f(x) = x^2 + c (mod n),c 隨機
    • 用 Floyd 循環偵測:x = f(x)、y = f(f(y))
    • 每步計 d = gcd(|x - y|, n)
    • 若 1 < d < n,d 為非瑣因子。對 d 與 n/d 遞迴
    • 若 d = n,以不同 c 重試
  4. :將一切所尋質因子(附指數)相乘,確積等原 n。對每因子試質性
  5. 以標準形呈結果:n = p1^a1 * p2^a2 * ... * pk^ak,p1 < p2 < ... < pk

演算法繁複度註:

AlgorithmComplexityBest for
Trial divisionO(sqrt(n))n < 10^12
Pollard's rhoO(n^{1/4}) expectedn up to ~10^18
Quadratic sieveL(n)^{1+o(1)}n up to ~10^50
GNFSL(n)^{(64/9)^{1/3}+o(1)}n > 10^50

預期: 規範形之完整質因式分解,由乘法驗。

失敗時: 若 Pollard rho 多迭仍無因子(已偵循環而無非瑣 gcd),試不同之 c 值(至少 5 試)。若皆失,餘因子或為質——以質性測試確認。

步驟四:施分佈分析(若任務 = 分佈)

析至給定界 N 之質數分佈。

  1. 以 Eratosthenes 篩生質數
    • 建大小 N + 1 之布林陣列,初為 true
    • 將索引 0 與 1 設 false(非質)
    • 對 p 自 2 至 floor(sqrt(N)):
      • 若 p 仍標 true,將一切倍數 p^2、p^2 + p、p^2 + 2p… 標 false
    • 收一切仍標 true 之索引
  2. 計質數:算 pi(N) = 至 N 之質數計數
  3. 與質數定理比
    • PNT 近似:pi(N) ~ N / ln(N)
    • 對數積分近似:Li(N) = integral from 2 to N of 1/ln(t) dt
    • 計相對誤差:|pi(N) - N/ln(N)| / pi(N)
  4. 析質數間距(選擇性):
    • 計連續質數間之間距
    • 報最大間距、平均間距、任孿生質數(間距 = 2)
    • N 附近平均間距約為 ln(N)
  5. 以摘要表呈發現
Bound N:       1,000,000
pi(N):         78,498
N/ln(N):       72,382
Li(N):         78,628
Relative error (N/ln(N)):  7.79%
Relative error (Li(N)):    0.17%
Max prime gap:  148 (between 492113 and 492227)
Twin primes:    8,169 pairs

預期: 質數計數附 PNT 比對與選擇性間距分析。

失敗時: 若 N 過大不能於記憶體中篩(N > 10^9),用以區塊處理範圍之分段篩。若僅需計(非列),用 Meissel-Lehmer 演算法直接得 pi(N)。

步驟五:計算驗結果

以獨立之計算法交叉查一切結果。

  1. 對質性:若用試除,以快速 Miller-Rabin 過驗(或反之)。對已知質數,對已發表質數表或 OEIS 序列查
  2. 對分解:將一切因子相乘並確等於原輸入。獨立試各所稱質因子之質性
  3. 對分佈:自篩輸出抽 3-5 個別數試質性。將 pi(N) 對標準基準(k = 1, …, 9 之 pi(10^k))之已發表值比

已發表之 pi(N) 值:

Npi(N)
104
10025
1,000168
10,0001,229
100,0009,592
10^678,498
10^7664,579
10^85,761,455
10^950,847,534
  1. 記驗證附所用法與結果。

預期: 一切結果獨立驗,無歧異。

失敗時: 若驗揭歧異,重行原計算並啟額外查(如冗詳之試除記錄)。最常見之誤為篩界差一、模算術中整數溢位、將偽質誤為真質。

驗證

  • 任務類型已正確分類(質性、分解或分佈)
  • 演算法合於輸入規模
  • 瑣碎情況(n < 2、n = 2、偶 n)於通用演算法前處理
  • 質性裁決確定(非未限制之「可能為質」)
  • 分解相乘回原數
  • 每所稱質因子已試質性
  • 篩界含 sqrt(N) 之合數標記覆蓋
  • PNT 比對用正確公式(N/ln(N) 或 Li(N))
  • 結果由獨立法或對已發表值驗
  • 邊界情況(n = 0、1、2、負輸入)已處理

常見陷阱

  • 遺 n = 1 非質:按慣例,1 既非質亦非合。許多演算法默默誤類之

  • 模冪中之整數溢位:為 Miller-Rabin 計 a^d mod n 時,樸素冪算溢位。用模冪算(每步取模之重複平方)

  • 篩之差一誤:篩須自 p^2 而非自 2p 標合數。自 2p 起費時然正確;自 p+1 起則誤

  • Pollard rho 之 d = n 循環:若 gcd(|x - y|, n) = n,演算法尋得瑣因子。以不同多項式常 c 重試,非僅以不同起點

  • Carmichael 數騙 Fermat 測試:561 = 3 * 11 * 17 等數對一切互質基通 Fermat 質性測試。恆用 Miller-Rabin 而非純 Fermat

  • 混 pi(n) 與常數 pi:質數計數函式 pi(n) 與圓常數 3.14159… 共用記號。情境須無歧

相關技能

  • solve-modular-arithmetic — 模算術為 Miller-Rabin 與許多分解法之基
  • explore-diophantine-equations — 質因式分解為解許多 Diophantine 方程之先決
  • formulate-quantum-problem — Shor 整數分解演算法將質數繫於量子計算

GitHub 저장소

pjt222/agent-almanac
경로: i18n/wenyan-lite/skills/analyze-prime-numbers
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

연관 스킬

evaluating-llms-harness

테스팅

이 Claude Skill은 MMLU, GSM8K를 포함한 60개 이상의 표준화된 학술 과제에서 LLM 성능을 벤치마크하기 위해 lm-evaluation-harness를 실행합니다. 개발자들이 모델 품질을 비교하고, 학습 진행 상황을 추적하거나 학술 결과를 보고할 수 있도록 설계되었습니다. 이 도구는 HuggingFace와 vLLM 모델을 포함한 다양한 백엔드를 지원합니다.

스킬 보기

cloudflare-cron-triggers

테스팅

이 스킬은 cron 표현식을 사용하여 Worker를 스케줄링하기 위한 Cloudflare Cron Triggers 구현에 관한 포괄적인 지식을 제공합니다. 주기적 작업, 유지보수 작업, 자동화된 워크플로우 설정 방법을 다루며, 잘못된 cron 표현식이나 시간대 문제 같은 일반적인 이슈들을 해결하는 방법을 포함합니다. 개발자들은 이를 통해 스케줄된 핸들러 구성, cron 트리거 테스트, Workflows 및 Green Compute와의 연동 작업을 수행할 수 있습니다.

스킬 보기

webapp-testing

테스팅

이 Claude Skill은 Python 스크립트를 통해 로컬 웹 애플리케이션을 테스트하기 위한 Playwright 기반 툴킷을 제공합니다. 프론트엔드 검증, UI 디버깅, 스크린샷 캡처, 로그 확인 기능을 지원하며 서버 라이프사이클을 관리합니다. 브라우저 자동화 작업에 사용하되 컨텍스트 오염을 방지하기 위해 소스 코드를 읽지 않고 스크립트를 직접 실행하세요.

스킬 보기

finishing-a-development-branch

테스팅

이 스킬은 테스트 통과를 확인한 후 체계적인 통합 옵션을 제시하여 개발자가 완성된 작업을 마무리하도록 돕습니다. 구현이 완료된 후 머지, PR 생성, 브랜치 정리와 같은 워크플로우를 안내합니다. 코드가 준비되고 테스트가 완료되었을 때 개발 프로세스를 체계적으로 마무리하기 위해 사용하세요.

스킬 보기