UVA10006-快速幂Carmichael Numbers

来源:互联网 发布:中国古代数学 知乎 编辑:程序博客网 时间:2024/05/18 18:52

https://vjudge.net/problem/UVA-10006
快速幂模板

#include <bits/stdc++.h>using namespace std;typedef long long ll;int  quickpow(int n,int m,int mod){    ll ret=1;    int  x=n;    while(m>0){        if(m&1) ret=x*ret%mod;        x=x*x%mod;        m>>=1;    }    return (int)ret;}int main(){   int m;    while(~scanf("%d",&m)){        if(!m) break;        bool flag=false;        for(int i=2;i<sqrt(m);i++){            if(m%i==0)            {flag=true;break;}        }        if(!flag){             printf("%d is normal.\n",m);        continue;}        flag=false;        for(int i=1;i<m&!flag;i++){            int  s=quickpow(i,m,m);           // cout<<i<<" "<<m<<" "<<s<<endl;            if(s!=i)                flag=true;        }        if(flag){            printf("%d is normal.\n",m);        }        else            printf("The number %d is a Carmichael number.\n",m);    }    return 0;}

这里写代码片

原创粉丝点击