POJ 1284 Primitive Roots (求原根個數)

來源:互聯網
上載者:User

標籤:style   http   strong   for   ar   div   amp   type   

Primitive Roots題目連結:http://poj.org/problem?id=1284
利用定理:素數 P 的原根的個數為euler(p - 1)
typedef long long ll;using namespace std;/*    求原根    g^d ≡ 1(mod p) 其中d最小為p-1,g 便是一個原根    複雜度:O(m)*log(P-1)(m為p-1的質因子個數)*/ll euler(ll x) {    ll res = x;    for (ll i = 2; i <= x / i; i++) if (x % i == 0) {        res = res / i * (i - 1);        while(x % i == 0) x /= i;    }    if (x > 1) res = res / x * (x - 1);    return res;}int main () {    ll n;    while(~scanf("%lld", &n)) {        printf("%lld\n", euler(n - 1));    }    return 0;}


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.