poj 3641 Pseudoprime numbers

来源:互联网 发布:测量长度的软件 编辑:程序博客网 时间:2024/06/09 16:13
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using namespace std;typedef long long int ll;//好吧,这次是因为没有使用long long。。。。ll mod_pow(ll x, ll n, ll mod){    ll res = 1;    while (n > 0) {        if (n&1)            res = res*x%mod;        x = x*x % mod;        n>>=1;    }    return res;}bool is_prime(ll k){    if (k == 1)        return false;    if (k == 2)        return true;    for (ll i = 2; i*i <= k; i++)    {        if (k%i == 0)            return false;    }    return true;}int main(){    ll a, p;    while (cin>>p>>a, a|p) {        if (is_prime(p))            cout<<"no"<<endl;        else if (mod_pow(a, p, p) == a)            cout<<"yes"<<endl;        else            cout<<"no"<<endl;    }}

0 0
原创粉丝点击