欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

小小yh的数论

程序员文章站 2022-06-08 13:08:18
...

题目:
小小yh的数论
方法一:快速幂取模

#include<bits/stdc++.h>
long long quick_pow(long long x,long long y,long long m){
long long res=1;
while(y>0){
    if(y&1)//取n的最后一位,并且判断这一位是否需要跳过,0跳过
        res=res*x%m;
    x=x*x%m;
    y>>=1;//把n右移一位,目的是把刚处理过的n的最后一位去掉
}
return res;
}
int main()
{
    int a,n,p;
    while(~scanf("%d%d%d",&a,&n,&p)){
        printf("%d\n",quick_pow(a,n,p));
    }
    return 0;
}

方法二:根据题目理解

#include <stdio.h>
int main()
{
    int a,n,p,m;
    while(~scanf("%d %d %d",&a,&n,&p))
    {
        m=pow(a,n%(p-1));
        printf("%d\n",m%p);
    }
    return 0;
}

相关标签: 算法练习题