analyze-prime-numbers
정보
이 스킬은 소수의 속성을 분석하며, 소수 판별과 소인수분해를 수행합니다. 여기에는 시행 나눗셈, 밀러-라빈 알고리즘, 에라토스테네스의 체와 같은 알고리즘과 더불어 정수론 함수 및 RSA 암호화 기초가 포함됩니다. 숫자가 소수인지 판별하거나 합성수를 인수분해하거나 암호화 기초 작업이 필요할 때 사용하십시오.
빠른 설치
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에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요
문서
name: analyze-prime-numbers description: > 素数の性質を分析し、素数判定と素因数分解を行う。試し割り法、ミラー-ラビン素数判定、 エラトステネスの篩、素数定理の適用、および暗号学的応用(RSA)の基礎を含む。 license: MIT allowed-tools: Read Grep Glob WebFetch WebSearch metadata: author: Philipp Thoss version: "1.0" domain: number-theory complexity: intermediate language: natural tags: number-theory, primes, factorization, primality-testing, cryptography locale: ja source_locale: en source_commit: 6f65f316 translator: claude-sonnet-4-6 translation_date: 2026-03-16
素数の分析
素数の性質を系統的に分析する。素数判定アルゴリズムの選択と適用、素因数分解の実行、素数の分布に関する定理の活用、および数論的関数(オイラーのトーシェント関数、メビウス関数)の計算を含む。
使用タイミング
- 与えられた数が素数かどうかを判定する場合
- 合成数の素因数分解を行う場合
- 一定範囲内のすべての素数を列挙する場合
- 素数定理を使用して素数の近似個数を推定する場合
- オイラーのトーシェント関数やメビウス関数を計算する場合
- RSA暗号などの暗号学的応用の基礎を理解する場合
入力
- 必須: 分析対象の数(素数判定)、または分析すべき範囲(素数の列挙)
- 必須: 分析タイプ(素数判定、素因数分解、範囲内列挙、数論的関数の計算)
- 任意: 使用するアルゴリズムの指定
- 任意: 確率的判定の許容誤差
手順
ステップ1: 問題の分類とアルゴリズムの選択
分析タイプと数の大きさに基づいて適切なアルゴリズムを選択する:
- 小さい数(< 10^6): 試し割り法またはエラトステネスの篩
- 中程度の数(10^6 - 10^18): ミラー-ラビン素数判定(確率的)
- 大きい数(> 10^18): ミラー-ラビンまたはAKS素数判定(決定的)
- 素因数分解: 試し割り → ポラードのρ法 → 二次篩法 → 数体篩法(数の大きさに応じて)
期待結果: 数の大きさと分析タイプに適したアルゴリズムが選択される。
失敗時: アルゴリズムの計算量が許容範囲を超える場合は、確率的方法に切り替えて誤差の上限を明示する。
ステップ2: 素数判定の実行
選択したアルゴリズムで素数判定を実行する:
- 試し割り法: √n以下のすべての素数で割り切れるか検査する。O(√n)。
- エラトステネスの篩: 2からnまでの配列で合成数を消していく。O(n log log n)。
- ミラー-ラビン判定: n-1 = 2^s × dの分解を行い、ランダムな基底aに対してフェルマーの小定理の変形を検証する。
- 結果の記録: 素数ならば「素数」、合成数ならば因数とともに記録する。
期待結果: 素数判定が正確に完了し、結果が記録される。
失敗時: ミラー-ラビン判定で偽陽性が懸念される場合は、複数の基底(最低10個)でテストするか、決定的テスト(特定の基底の組み合わせ)を使用する。
ステップ3: 素因数分解の実行
合成数の完全な素因数分解を求める:
- 小さい因数の除去: 2、3、5、7、...と順に割り、小さい素因数を除去する。
- ポラードのρ法: 擬似乱数列 x_{n+1} = x_n² + c (mod n) を生成し、gcd(|x_i - x_j|, n)で因数を検出する。
- 再帰的分解: 見つかった因数が合成数の場合は、さらに分解を続ける。
- 一意性の確認: 算術の基本定理により、素因数分解は(順序を除いて)一意。
期待結果: 完全な素因数分解 n = p₁^a₁ × p₂^a₂ × ... × pₖ^aₖ が得られる。
失敗時: 大きな半素数(2つの大きな素数の積)の場合、ρ法では時間がかかる。二次篩法や数体篩法の使用を検討する。
ステップ4: 数論的関数の計算
素因数分解を利用して数論的関数を計算する:
- オイラーのトーシェント関数: φ(n) = n × ∏(1 - 1/p)(pはnの素因数)
- 約数関数: σ₀(n)(約数の個数)= ∏(aᵢ + 1)、σ₁(n)(約数の和)= ∏(pᵢ^(aᵢ+1) - 1)/(pᵢ - 1)
- メビウス関数: μ(n) = (-1)^k(nがk個の異なる素因数の積の場合)、μ(n) = 0(平方因子がある場合)
- 位数と原始根: φ(n)の約数を検査して乗法的位数を求める。原始根の存在条件を確認する。
期待結果: 要求された数論的関数の値が正確に計算される。
失敗時: 素因数分解が不完全な場合は、数論的関数の計算も不完全になる。まず完全な素因数分解を確保すること。
バリデーション
- アルゴリズムが数の大きさに適している
- 素数判定の結果が正しい(小さい数は検算可能)
- 素因数分解の積が元の数に等しい
- すべての因数が素数である
- 数論的関数の値が正しい(既知の値との照合)
よくある落とし穴
- 1は素数ではない: 素数の定義は「1より大きい自然数で、1と自分自身以外に正の約数を持たない数」。1は素数でも合成数でもない。
- ミラー-ラビンの偽陽性: 確率的テストでは合成数を素数と誤判定する可能性がある。高い確実性が必要な場合は十分な回数テストを繰り返す。
- 試し割りの上限: √nまでで十分。√nを超える因数が存在する場合、n/pは√n未満であり、既にチェック済み。
- 素因数分解の計算困難性: RSA暗号の安全性は大きな数の素因数分解が計算困難であることに依存する。この困難性は証明されていないが、広く信じられている。
関連スキル
solve-modular-arithmetic-- 素数が関わる合同算術explore-diophantine-equations-- 素数の性質を利用した整数方程式
GitHub 저장소
연관 스킬
llamaguard
기타LlamaGuard는 폭력 및 혐오 발언 등 6가지 안전 범주에서 LLM 입력과 출력을 조정하기 위한 Meta의 70-80억 파라미터 모델입니다. 94-95% 정확도를 제공하며 vLLM, Hugging Face 또는 Amazon SageMaker를 사용해 배포할 수 있습니다. 이 기술을 사용하여 AI 애플리케이션에 콘텐츠 필터링 및 안전 가드레일을 손쉽게 통합하세요.
cost-optimization
기타이 Claude Skill은 리소스 적정화, 태깅 전략, 지출 분석을 통해 개발자들이 클라우드 비용을 최적화할 수 있도록 지원합니다. AWS, Azure, GCP에서 클라우드 비용을 절감하고 비용 거버넌스를 구현하기 위한 프레임워크를 제공합니다. 인프라 비용을 분석하거나, 리소스를 적정화하거나, 예산 제약을 충족해야 할 때 사용하세요.
quantizing-models-bitsandbytes
기타이 스킬은 bitsandbytes를 사용하여 LLM을 8비트 또는 4비트 정밀도로 양자화하며, 최소한의 정확도 손실로 50-75%의 메모리 감소를 달성합니다. 제한된 GPU 메모리에서 더 큰 모델을 실행하거나 추론을 가속화하는 데 이상적이며, INT8, NF4, FP4와 같은 형식을 지원합니다. 이 스킬은 HuggingFace Transformers와 통합되어 QLoRA 학습 및 8비트 옵티마이저를 가능하게 합니다.
dispatching-parallel-agents
기타이 Claude Skill은 3개 이상의 독립적인 문제를 동시에 조사하고 해결하기 위해 다중 에이전트를 배치합니다. 공유 상태나 의존성 없이 해결 가능한 무관련 장애 시나리오에 맞게 설계되었습니다. 핵심 기능은 병렬 문제 해결로, 각 독립 문제 영역마다 하나의 에이전트를 할당하여 효율성을 극대화합니다.
