analyze-prime-numbers
정보
이 스킬은 소수 판별, 인수분해, 분포 계산을 포함한 소수 분석 알고리즘을 제공합니다. 계산적 정수론 작업을 위해 밀러-라빈 검증법, 시행 나눗셈, 에라토스테네스의 체와 같은 방법을 구현합니다. 증명이나 응용 프로그램에서 소수를 확인하거나, 소인수를 찾거나, 소수 목록을 생성해야 할 때 사용하세요.
빠른 설치
Claude Code
추천npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/analyze-prime-numbersClaude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요
문서
Analyze Prime Numbers
Select + apply right algo: primality, factorization, distribution. Verify computationally + relate to Prime Number Theorem.
Use When
- Int prime or composite?
- Complete prime factorization
- Count/list primes up to bound
- Verify PNT approx for range
- Investigate prime props in number-theoretic proof/compute
In
- Required: Int(s) to analyze, or bound for distribution
- Required: Task — primality, factorization, distribution
- Optional: Preferred algo (trial div, Miller-Rabin, Sieve Eratosthenes, Pollard's rho)
- Optional: Formal proof or computational verdict
- Optional: Out format (factor tree, prime list, count, table)
Do
Step 1: Determine Task
Classify → 1 of 3 + select algo path:
- Primality: Int n, prime?
- Factorization: Composite n, complete prime factorization
- Distribution: Bound N, analyze primes ≤ N (count, list, gaps, density)
Record task + in values.
→ Clear classification + in values recorded.
If err: Ambiguous ("analyze 60") → ask clarify primality vs factorization vs distribution. Default factorization for composites + primality confirm suspected primes.
Step 2: Primality Testing (if task = primality)
Test n prime, algo matched to size:
-
Trivial: n < 2 not prime. n = 2 or 3 prime. n even + n > 2 → composite.
-
Small n (<10^6): Trial division.
- Test div all primes p ≤ floor(sqrt(n)).
- Opt: test 2, then odd 3, 5, 7, ... or 6k +/- 1 wheel.
- No divisor → prime.
-
Large n (>=10^6): Miller-Rabin probabilistic.
- n - 1 = 2^s * d, d odd.
- Per witness a in {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37}:
- Compute x = a^d mod n.
- x = 1 or x = n - 1 → pass.
- Else square x up to s - 1 times. x = n - 1 ever → pass.
- No pass → composite (a = witness).
- n < 3.317 * 10^24 → witnesses give deterministic result.
-
Record verdict: prime or composite + witness/cert.
Small primes (1st 25):
| Index | Prime | Index | Prime | Index | Prime |
|---|---|---|---|---|---|
| 1 | 2 | 10 | 29 | 19 | 67 |
| 2 | 3 | 11 | 31 | 20 | 71 |
| 3 | 5 | 12 | 37 | 21 | 73 |
| 4 | 7 | 13 | 41 | 22 | 79 |
| 5 | 11 | 14 | 43 | 23 | 83 |
| 6 | 13 | 15 | 47 | 24 | 89 |
| 7 | 17 | 16 | 53 | 25 | 97 |
| 8 | 19 | 17 | 59 | ||
| 9 | 23 | 18 | 61 |
→ Definitive (prime/composite) + algo used + witnesses/divisors.
If err: Miller-Rabin "probably prime" + certainty needed → escalate deterministic (AKS or ECPP). Trial div too slow → Miller-Rabin.
Step 3: Factorization (if task = factorization)
Factor n completely → prime power decomposition:
-
Extract small factors by trial div:
- Divide 2 as many times as possible, record exponent.
- Divide odd primes 3, 5, 7, 11, ... up to cutoff (10^4 or sqrt(n) if small).
- After each div, update n → cofactor.
-
Cofactor > 1 + <10^12: Continue trial div ≤ sqrt(cofactor).
-
Cofactor >= 10^12: Pollard's rho.
- f(x) = x^2 + c (mod n), random c.
- Floyd cycle: x = f(x), y = f(f(y)).
- d = gcd(|x - y|, n) each step.
- 1 < d < n → non-trivial factor. Recurse d + n/d.
- d = n → retry diff c.
-
Verify: Multiply all prime factors + exponents = original n. Test each factor primality.
-
Present: n = p1^a1 * p2^a2 * ... * pk^ak, p1 < p2 < ... < pk.
Algo complexity:
| Algo | Complexity | Best for |
|---|---|---|
| Trial division | O(sqrt(n)) | n < 10^12 |
| Pollard's rho | O(n^{1/4}) expected | n up to ~10^18 |
| Quadratic sieve | L(n)^{1+o(1)} | n up to ~10^50 |
| GNFS | L(n)^{(64/9)^{1/3}+o(1)} | n > 10^50 |
→ Complete prime factorization canonical form + multiplication verified.
If err: Pollard's rho fails after many iters (cycle w/o non-trivial gcd) → try diff c (≥5 attempts). All fail → cofactor may be prime → confirm primality.
Step 4: Distribution Analysis (if task = distribution)
Distribution of primes up to N:
-
Generate via Sieve Eratosthenes:
- Bool array size N + 1, true.
- Set 0 + 1 false (not prime).
- Per p from 2 to floor(sqrt(N)):
- Still true → mark multiples p^2, p^2 + p, p^2 + 2p, ... false.
- Collect indices still true.
-
Count: pi(N) = primes up to N.
-
Compare w/ PNT:
- PNT approx: pi(N) ~ N / ln(N).
- Logarithmic integral: Li(N) = integral 2 to N of 1/ln(t) dt.
- Relative err: |pi(N) - N/ln(N)| / pi(N).
-
Analyze gaps (optional):
- Gaps between consecutive primes.
- Max gap, avg gap, twin primes (gap = 2).
- Avg gap near N ~ ln(N).
-
Present summary:
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
→ Count + PNT compare + optional gap analysis.
If err: N too large in-mem sieve (N > 10^9) → segmented sieve processes range in blocks. Count only (no list) → Meissel-Lehmer for pi(N) direct.
Step 5: Verify Computationally
Cross-check via independent method:
-
Primality: Trial div used → verify quick Miller-Rabin (or vice versa). Known primes → check published tables or OEIS.
-
Factorization: Multiply factors + confirm = original. Independently test each claimed prime.
-
Distribution: Spot-check 3-5 numbers from sieve out for primality. Compare pi(N) published values (pi(10^k) k = 1, ..., 9).
Published pi(N):
| N | pi(N) |
|---|---|
| 10 | 4 |
| 100 | 25 |
| 1,000 | 168 |
| 10,000 | 1,229 |
| 100,000 | 9,592 |
| 10^6 | 78,498 |
| 10^7 | 664,579 |
| 10^8 | 5,761,455 |
| 10^9 | 50,847,534 |
- Doc verification + method + outcome.
→ All results independently verified no discrepancies.
If err: Verification → discrepancy → re-run w/ extra checks (verbose trial div logging). Common: off-by-one sieve bounds, int overflow modular arithmetic, pseudoprime mistaken prime.
Check
- Task correctly classified (primality, factorization, distribution)
- Algo appropriate for in size
- Trivial cases (n < 2, n = 2, even n) handled pre-general
- Primality verdicts definitive (not "probably prime" unqualified)
- Factorizations multiply back to original
- Every claimed prime factor tested primality
- Sieve bounds include sqrt(N) coverage
- PNT compare uses correct formula (N/ln(N) or Li(N))
- Results verified by independent method or published values
- Edge cases (n = 0, 1, 2, neg) addressed
Traps
-
Forget n = 1 not prime: Convention — 1 neither prime nor composite. Many algos silently misclassify.
-
Int overflow modular exp: Computing a^d mod n for Miller-Rabin, naive exp overflows. Use modular exp (repeated squaring + mod each step).
-
Sieve off-by-one: Mark composites starting p^2, not 2p. 2p wastes time but correct; p+1 wrong.
-
Pollard's rho cycle w/ d = n: gcd(|x - y|, n) = n → algo found trivial factor. Retry diff c not just starting pt.
-
Carmichael nums fooling Fermat: Nums like 561 = 3 * 11 * 17 pass Fermat primality all coprime bases. Always Miller-Rabin, not plain Fermat.
-
Confuse pi(n) w/ constant pi: Prime counting fn pi(n) + circle constant 3.14159 share notation. Ctx unambiguous.
→
solve-modular-arithmetic— underpins Miller-Rabin + factorizationexplore-diophantine-equations— factorization prereq for solving manyformulate-quantum-problem— Shor's algo for factorization connects primes → quantum
GitHub 저장소
연관 스킬
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 생성, 브랜치 정리와 같은 워크플로우를 안내합니다. 코드가 준비되고 테스트가 완료되었을 때 개발 프로세스를 체계적으로 마무리하기 위해 사용하세요.
