hdu 4704 费马小定理

来源:互联网 发布:matlab数据拟合 线性度 编辑:程序博客网 时间:2024/05/14 10:57

费马小定理+快速幂

费马小定理可以用来求解a的高次幂mod质数的值。前提是a与质数互质。

#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int maxn=1e6+9,mod=1e9+7;char a[maxn];int cal(int m){    long long ret=2,ans=1;    while(m)    {        if(m&1) ans=(ans*ret)%mod;        m/=2;        ret=(ret*ret)%mod;    }    return ans;}int main(){//    freopen("in.txt","r",stdin);    while(scanf("%s",a+1)!=EOF)    {        int n=strlen(a+1);        long long ret=0;        for(int i=1;i<=n;i++)        {            ret=(ret*10)%(mod-1);            ret=(ret+a[i]-'0')%(mod-1);        }        int ans=cal((ret+mod-1)%mod);        cout<<ans<<endl;    }    return 0;}


原创粉丝点击