poj3641

来源:互联网 发布:怎样用ps做淘宝详情页 编辑:程序博客网 时间:2024/05/22 11:58

题目链接:http://poj.org/problem?id=3641

题意:ap = a (mod p)

解题思路:快速幂运算

#include <iostream>#include <math.h>using namespace std;long long mod_pow(long long x,long long n,long long mod){    if(n==0)        return 1;    long long res=mod_pow(x*x%mod,n/2,mod);    if(n&1)        res=res*x%mod;    return res;}bool isPrime(long long p){    if(p==2)        return true;    if(p%2==0||p==1)        return false;    bool flag=true;    for(int i=3;i<=sqrt(p);i=i+2)    {        if(p%i==0)        {            flag=false;            return flag;        }    }    return flag;}int main(){    long long p,a,ans;    while(cin>>p>>a,p!=0||a!=0)    {        ans=mod_pow(a,p,p);        if(ans==a&&!isPrime(p))            cout<<"yes"<<endl;        else            cout<<"no"<<endl;    }    return 0;}


0 0
原创粉丝点击