လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP သည် GMP နှင့်ပေါင်းစပ်ထားသော Integer Lucas-Lehmer Primality Trat သင်ခန်းစာကိုအကောင်အထည်ဖော်ရန် GMP နှင့်ပေါင်းစပ်ထားသည်

PHP သည် GMP နှင့်ပေါင်းစပ်ထားသော Integer Lucas-Lehmer Primality Trat သင်ခန်းစာကိုအကောင်အထည်ဖော်ရန် GMP နှင့်ပေါင်းစပ်ထားသည်

M66 2025-10-09

နိဒါန်း

နံပါတ်သီအိုရီတွင် Lucas-Lehmer Primality Test သည် Mersenne နံပါတ်သည်ချုပ်မရှိမရှိဆုံးဖြတ်ရန်ထိရောက်သောနည်းလမ်းဖြစ်သည်။ ဤဆောင်းပါးတွင် Lucas-Lehmer Primality Test ကိုအကောင်အထည်ဖော်ရန်နှင့်ပြည့်စုံသောကုဒ်ကိုအကောင်အထည်ဖော်ရန်အတွက် PHP ဘာသာစကားနှင့် GMP extension ကိုပေါင်းစပ်ပါမည်။

Lucas-Lehmer Primordial Test ကဘာလဲ။

Lucas-Lehmer Primality Test သည် Mersenne အရေအတွက် MERENE နံပါတ် = 2 ^ n-1 သည် PRESTION ဖြစ်သည်။ ထိုအရာသည် 1 ထက်ပိုသောအပြုသဘောဆောင်သောကိန်းဂဏန်းဖြစ်သည်။ စမ်းသပ်မှုသည် Lucas-Lehmer sequence ကိုအခြေခံသည်။ ၎င်းသည် sequence ၏ဒြပ်စင်တစ်ခုစီကိုပိုမိုတွက်ချက်သည်။ နောက်ဆုံးတွင် sequence ၏နောက်ဆုံး element သည်သုညဖြစ်သည်,

Lucas-Lehmer Testing Php နှင့် GMP ကို ​​အသုံးပြု. စမ်းသပ်ခြင်း

GMP extension ကို install လုပ်ပါ

PHP ၏ built-in function များသည်အလွန်ကြီးမားသောကိန်းဂဏန်းများကိုမကိုင်တွယ်နိုင်သဖြင့် GMP extension ကိုလိုအပ်သည်။ PHP ကို ​​install လုပ်သည့်အခါ GMP extensions enable လုပ်ထားသည့်ဗားရှင်းကိုရွေးချယ်နိုင်သည်သို့မဟုတ်သင်၏လက်ရှိပတ်ဝန်းကျင်တွင် GMP တိုးချဲ့မှုများကိုဖွင့်နိုင်သည်။

Lucas-Lehmer Primality Test Function ကိုရေးသားခြင်း

 function lucaslehmittest ($ n)
{
    $ s = '4';
    $ m = gmp_pow ('2', $ n) - '1',

    အတွက် ($ i = 1; $ i <$ n - 1; $ i ++)
        $ s = GMP_MOD (GMP_POW ($ S, 2) - 2, $ m);
    }

    လျှင် ($ s == &#39;0&#39;) {
        စစ်မှန်ပါလိမ့်မည်
    }

    တုံ့ပြန်ပါ။
}

ခွဲခြမ်းစိတ်ဖြာခြင်း

  • $ n: Mersenne နံပါတ်၏ထပ်ကိန်းအစိတ်အပိုင်း။
  • $ s: Lucas-Lehmer sequence ၏ကန ဦး တန်ဖိုး။
  • $ M: Mersenne အရေအတွက်။

Function တွင် GMP_POW သည်ဒေါ်လာ M $ ရရှိရန်အတွက်ဒေါ်လာ 2 ဒေါ်လာဖြင့်ရနိုင်ရန်အတွက် 2 ကြိမ်မြောက်အသုံးပြုမှုကိုတွက်ချက်ရန်အသုံးပြုသည်။ Lucas-Lehmer Sequence ကိုတွက်ချက်ရန် $ N-1 Times မှဒေါ်လာ 1 ကြိမ်ဖြင့်အသုံးပြုသည်။

Lucas-Lehmer Primality Test Function ကိုခေါ်ပါ

 $ Exponentent = [2, 3, 5, 7, 13, 17];

foreach ($ Exponent အဖြစ် $ questents) {
    $ ရလဒ် = Lucaslehmittest ($ Exponon);

    လျှင် ($ ရလဒ်) {
        ECHO "2 ^ $ Exponent - 1 သည်အဓိကနံပါတ်ဖြစ်သည်။ ";
    } အခြား
        ECHO "2 ^ $ Exponent - 1 သည်အဓိကနံပါတ်မဟုတ်ပါ။ ";
    }
}

ခွဲခြမ်းစိတ်ဖြာခြင်း

ထပ်ဆင့်ထပ်ကိန်းများပါ 0 င်သော array array array များကိုသတ်မှတ်ပြီး Test Resultions မှ output တရားစီရင်ရေးဆိုင်ရာအချက်အလက်များအတွက် Lucas-Lehmer Primer Prince function ကိုအသုံးပြုပါ။

အကျဉ်းချုပ်

PHP နှင့် GMP extensions များမှတဆင့်သင်သည် Lucas-Lehmer Primality Test ကိုအလွယ်တကူအကောင်အထည်ဖော်နိုင်သည်။ ကြီးမားသော Mesenne နံပါတ်များကိုအခြေခံသည့်အခြေခံဥပဒေအရ Lucas-Lehmer algorithm သည်ပိုမိုထိရောက်ပြီးရလဒ်များကိုအလျင်အမြန်ရရှိနိုင်သည်။ ဤဆောင်းပါးတွင်ဖော်ပြထားသောသင်္ကေတများကိုလက်တွေ့ကျကျရည်ညွှန်းအဖြစ်အသုံးပြုနိုင်သည်။

ကိုးကားခြင်း

  • Lucas-Lehmer Primality Test ။ Wikipedia, အခမဲ့စွယ်စုံကျမ်း။ url: https://en.wikipedia.org/wiki/lucasude2/w/wiki/lucascaseMe2/m80%93letmer_primality_test_test
  • GMP လက်စွဲစာအုပ်။ PHP ။ url: https://www.php.net/enuation/en/en/book.gmp.php
ဆက်စပ်အကြောင်းအရာ
မကြာသေးမီ ဆောင်းပါးများ