Tipperma ၏သီအိုရီသည် Nume Theory တွင်အခြေခံသီအိုရီများထဲမှတစ်ခုဖြစ်ပြီးအဓိကနံပါတ်ရှာဖွေရေးတွင်ကျယ်ပြန့်စွာအသုံးပြုသည်။ P-chere နံပါတ်တစ်ခုဆိုပါက P သည် perime နံပါတ်တစ်ခုနှင့်သက်ဆိုင်သောကိန်းဂဏန်းများဖြစ်လျှင် P တွင် {p-1} \ Equiv 1 \ PMOD {pmod {P-1} emod {pmod {p-1} m ။ ဒီသီအိုရီဟာကိန်းကြီးတစ်ခုမှာအဓိကနံပါတ်လို့အတည်ပြုဖို့သုံးနိုင်တယ်။
PHPT ဇာဇာလုပ်ဆောင်ချက်များသည်စူပါကြီးမားသောကိန်းဂဏန်းများနှင့်ဆက်ဆံရာတွင် GMP extensions များပိုမိုထိရောက်သော Multi-Integer စစ်ဆင်ရေးအထောက်အပံ့များကိုထိရောက်စွာထောက်ပံ့သည်။ ပထမ ဦး စွာ GMP extension ကိုတင်ထားကြောင်းအတည်ပြုရန်လိုအပ်သည်။ ဥပမာသည်အောက်ပါအတိုင်းဖြစ်သည် -
if (extension_loaded('gmp')) {
echo "GMPတိုးချဲ့ခြင်းစာကြည့်တိုက်ကိုတင်ခဲ့သည်。";
} else {
echo "GMPတိုးချဲ့ခြင်းစာကြည့်တိုက်မတင်ပါ。";
exit;
}
Function ကိုသတ်မှတ်ခြင်းအားဖြင့် GMP ၏တိကျသောစစ်ဆင်ရေးလုပ်ဆောင်မှုကိုအသုံးပြုခြင်းဖြင့်ကျပန်းစမ်းသပ်မှုများပြုလုပ်ရန်အတွက်ကြီးမားသောကိန်းဂဏန်းများ၏အဓိကဂုဏ်သတ္တိများကိုကျွန်ုပ်တို့ဆုံးဖြတ်နိုင်သည်။
function fermatTest($n, $k) {
for ($i = 0; $i < $k; $i++) {
$a = gmp_random_range(2, $n - 1); // ကျပန်းကိန်းရွေးချယ်ပါa
$result = gmp_powm($a, $n - 1, $n); // ရေတွက် a^(n-1) mod n
if (gmp_cmp($result, 1) !== 0) { // ရလဒ်မဟုတ်ပါဘူး1,nNon-Prime နံပါတ်များ
return false;
}
}
return true; // အားလုံးစမ်းသပ်မှုဖြတ်သန်း,nဖြစ်ကောင်း Prime
}
Tfefama စစ်ဆေးမှု၏တိကျမှန်ကန်မှုကိုအတည်ပြုရန်အတွက်အထောက်အကူပြုစစ်ဆေးမှု function ကိုသင် သတ်မှတ်. ၎င်းကိုစစ်ဆေးရန်အထက်ပါနည်းလမ်းကိုခေါ်ဆိုနိုင်သည်။
function testFermatTest($n) {
if (fermatTest($n, 10)) { // ဉီးစီး10သိကောင်းစရာများ
echo "{$n} ဖြစ်ကောင်း Prime。";
} else {
echo "{$n} မဟုတ်အဓိကနံပါတ်。";
}
}
အောက်ပါဥပမာသည်စူပါကြီးမားသောကိန်းဂဏန်းတွင် Tipma Theorem အရည်အသွေးပြည့်စုံမှုကိုမည်သို့လုပ်ဆောင်ရမည်ကိုပြသသည်။
<span class="fun">testferment (gmp_init ("100000000000000000000000000000000003") ");</span>
Code တွင် string ကို GMP_INIT မှတစ်ဆင့် GMP ကြီးမားသောကိန်းထဲသို့ပြောင်းလဲပြီးစစ်ဆေးမှုပြုလုပ်ရန်စမ်းသပ်မှုလုပ်ဆောင်ချက်ဟုခေါ်သည်။
အထက်ပါအဆင့်များနှင့် PHP ၏ GMP တိုးချဲ့စာကြည့်တိုက်နှင့်ပေါင်းစပ်ပြီး, ကြီးမားသောကိန်းဂဏန်းများအတွက်ထိရောက်သော TIPMA Theorem စစ်ဆေးမှုကိုအကောင်အထည်ဖော်နိုင်သည်။ ဤနည်းလမ်းသည်ရိုးရှင်းပြီးလက်တွေ့ကျသည်။ ကြီးမားသောနံပါတ်များကိုပဏာမတရားစီရင်ခြင်းအတွက်သင့်လျော်သည်။ သို့သော်တိကျမှန်ကန်မှုကိုတိုးတက်စေရန်အစွန်အဖျား fermat စစ်ဆေးမှုကိုအခြား primer detection algorithms နှင့်ပေါင်းစပ်အသုံးပြုသည်။