ForHosting KIT · 数学

Lucas偽素数チェッカー

Lucas判定をすり抜ける奇数の合成数を見つけます。Pを1、Qを−1にすると、合成数323は判定を通過し、最小のフィボナッチ偽素数になります。判別式D、ヤコビ記号、使った添字も表示します。ブラウザで無料で使えます。

  • 無料
  • ブラウザで動作
  • 登録不要
  • データは端末の外に出ません
ご利用方法 ウェブAPIメールTelegramアプリ 近日
入力した場合
N
323
P
1
Q
-1
結果
D
5
ヤコビ記号
-1
Uの添字
324
nを法とするU
0

Lucas 偽素数とは、与えられたパラメータ P と Q に対して素数が従うべき Lucas 数列 U の合同式を、なお満たしてしまう奇数の合成数です。暗号技術者、数論の学習者、素数判定の実装者は、この検査によって真の素数と、Lucas の一層だけを欺く合成数とを切り分けます。それは強い Fermat 判定と組み合わせたとき、Baillie–PSW 系が捉えようとする失敗様式そのものです。本チェッカーは n と P・Q を受け取り、判別式 D を P の二乗から四倍の Q を引いた値として構成し、D が完全平方のときは要求を拒否し、D の n に対する Jacobi 記号を計算し、二進倍化はしごで指数 n からその記号を引いた位置の U を n で割った余りを求め、合同が成り立つかと n が合成数かの両方を報告します。

Lucas 偽素数とは何か、U 判定の仕組み

Lucas 数列 U_k(P, Q) と V_k(P, Q) は、U_0 を 0、U_1 を 1、V_0 を 2、V_1 を P とし、共通の線形漸化式 X_k を P 倍の X_{k-1} から Q 倍の X_{k-2} を引いた値で定義する整数列です。特徴判別式は D で、P の二乗から四倍の Q を引いたものです。

1 より大きい奇数 n が Q と D の積と互いに素であるとき、epsilon を D の n に対する Jacobi 記号(+1 または −1)とします。互いに素条件を満たす奇数素数 p はすべて U_{p マイナス epsilon} が p を法として 0 に合同になります。

同じ合同をなお満たす正の奇数合成数 n を、パラメータ P・Q の Lucas 偽素数と呼びます。古典的な Fibonacci の場合は P が 1、Q が −1 なので U_k は Fibonacci 数列、D は 5 となり、最小の Fibonacci 偽素数は 323 です。

より強い変種(超強 Lucas、Frobenius)は V への条件を加えますが、本能力は教科書や特殊型 Lucas 偽素数の研究ノートで使われる標準の U のみ定義を実装します。

候補が単なる確率的素数なのか真の偽素数なのかを知ることで、リスク予算に対して Lucas 一層で足りるか、Baillie–PSW のように強い base-2 判定と重ねるべきかを判断できます。

パラメータ P・Q の Lucas 偽素数とは何ですか?

Q·D と互いに素な奇数合成数 n(D=P²−4Q)で、U_{n−(D/n)}(P,Q) ≡ 0 (mod n) を満たすものです。(D/n) は Jacobi 記号です。同じ判定に通る素数は偽素数とは呼びません。

なぜ完全平方の判別式を拒否するのですか?

D = P² − 4Q が非負の完全平方のとき Lucas 数列は退化し、素数合同は意味を失います。

323はLucas偽素数ですか?

はい。Pを1、Qを−1とするフィボナッチの場合、Dは5、ヤコビ記号は−1で、添字324のUは323で割り切れます。323は合成数なのでLucas偽素数であり、フィボナッチ偽素数の中で最小です。

13のような本当の素数を入れるとどうなりますか?

Lucas判定は通過しますが、偽素数とは表示されません。偽素数は合成数でなければならないからです。合同式が成り立つかどうかと、合成数かどうかを別々に示します。

Lucas判定だけで素数だと言い切れますか?

いいえ。Lucas判定を1回だけなら通過する合成数があるため、Baillie–PSWでは底2の強いフェルマー判定と組み合わせます。この判定で、候補がそうした合成数かどうかを確かめられます。

このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。

POSThttps://api.kit.forhosting.com/numth/lucas-pseudoprime-check

Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。

curl -X POST https://api.kit.forhosting.com/numth/lucas-pseudoprime-check \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"n":"323","P":"1","Q":"-1"}'
{
  "n": "323",
  "P": "1",
  "Q": "-1"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "numth.lucas_pseudoprime_check",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。

1リクエストあたり$0.002

単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。

HTTPコード意味
401unauthorizedAPIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。
402insufficient_balance残高が不足しています。チャージ後に再度お試しください。
404unknown_type指定されたタスクタイプは存在しません。タイプ名を確認してください。
429rate_limitedリクエストが多すぎます。しばらく待ってから再度お試しください。

Lucas 偽素数とは何か、U 判定の仕組み

D が 0 でない完全平方のとき、Binet 型の閉形式は単なる等比数列に退化し、素数判定に有用な算術的性質を失うため、本エンドポイントはそのようなパラメータを invalid_input で拒否し、意味のない 0 は返しません。

入力契約、応答フィールド、エラー挙動

n は少なくとも 3 の奇数候補、P は第 1 の Lucas パラメータ、Q は第 2 です。解析後、ハンドラは D を P の二乗から四倍の Q を引いた値として作り、D が 0 を含む非負の完全平方なら数列が退化するため例外を投げます。同じパラメータの素数 13 は Lucas 判定に通りますが偽素数とはラベルされません。必須の整数フィールド 3 つを持つ JSON 本体を POST してください。各フィールドは JSON 数値または十進整数文字列で渡せます。整数でない値、欠落フィールド、偶数の n、3 未満の n は問題を明示して invalid_input になります。成功時、本体は n・P・Q・D を十進文字列で返し、jacobi は D の n に対する Jacobi 記号を −1・0・1 の数として、u_index は記号が非零のとき n から jacobi を引いた値、u_mod_n はその指数での U を n で割った余り、gcd_ok は n が Q と D の積と互いに素なら真、passes_lucas_test は古典条件で U 合同が成り立つときのみ真、is_prime は対応範囲での決定的 Miller–Rabin 判定、is_lucas_pseudoprime は n が合成で gcd_ok が真、Jacobi が非零、かつ合同がなお成り立つときのみ真です。method フィールドは常に文字列 lucas_u_sequence で、クライアントがログにアルゴリズムを固定できます。例:n が 323、P が 1、Q が −1 なら D は 5、jacobi は −1、u_index は 324、u_mod_n は 0、is_prime は偽、is_lucas_pseudoprime は真です。検証失敗は課金されず、成功した呼び出しは API 経路で公開の基本価格 $0.002 です。

Lucas 偽素数 API が活きる場面

教室や競技プラットフォームには、学習者が 64 ビット整数を溢れさせる合同漸化コードを手書きしなくても、Fibonacci および一般の Lucas 偽素数を正しく付ける決定的オラクルが必要です。lucas 偽素数チェッカーで検索上位を狙うコンテンツサイトは、同じ純モジュール上で無料ブラウザ経路と有料自動化が一致するライブツールを得ます。暗号教材は、passes_lucas_test が真で is_prime が偽の合成数を示し、単一の代数的判定が素数証明でないことを説明できます。特殊型の新しい Lucas 偽素数を探すためにパラメータ族を走査する研究ノートは、D・Jacobi・指数・剰余という中間状態を返す小さな parse API の恩恵を受け、二次相互律を再実装せずにフィルタと作図ができます。実装は parse の tier A 純関数なので、成功呼び出しは毎回 $0.002 で、モデルトークンも外向きネットワークもありません。

Fibonacci・Lucas 偽素数の教室演習

学習者に P=1, Q=−1(または他のパラメータ)で n を提出させ、教科書の一覧(例:323)に対して is_lucas_pseudoprime を確認させます。

素数判定ライブラリの回帰テスト

既知の Lucas 偽素数と素数を CI に固定し、モジュラな U_k はしごが古典合同からずれないようにします。

研究用パラメータ掃引

P と Q の族を走査し、なお U_{n−ε} ≡ 0 (mod n) を満たす合成数 n を探します。応答の D・jacobi・u_mod_n を利用できます。

323 は Lucas 偽素数ですか?

Fibonacci パラメータ P=1, Q=−1(D=5)でははい。合成数(17×19)でありながら U_{324} ≡ 0 (mod 323) なので is_lucas_pseudoprime は真です。

真の素数は Lucas 偽素数に数えますか?

いいえ。U 合同を満たす真の素数は passes_lucas_test と is_prime を真にしますが、定義により is_lucas_pseudoprime は偽のままです。

Lucas 偽素数チェッカーの料金は?

ブラウザツールは無料です。API 要求は前払い KIT 残高から成功呼び出しごとに $0.002 です。無効入力は課金されません。

KITの完全なドキュメントを見る →