[hdu6063]RXD and math

来源:互联网 发布:武汉精神卫生中心 知乎 编辑:程序博客网 时间:2024/05/29 07:50

题目大意

给你一个数学式子,要求计(zhao)算(chu)出(jie)来(lun)。

显然

任意数可唯一表示成a^2*b,其中μ(b)=1
式子相当于在枚举b,后面乘的系数是a的范围。
那么每个数都被算一次,答案是n^k。

#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)using namespace std;typedef long long ll;const int mo=1000000007;ll n,k;int qsm(ll x,ll y){    if (!y) return 1;    int t=qsm(x,y/2);    t=(ll)t*t%mo;    if (y%2) t=(ll)t*(x%mo)%mo;    return t;}int main(){    int wdc=0;    while (scanf("%lld%lld",&n,&k)!=EOF){        /*if (n%mo==0){            printf("0\n");            continue;        }*/        //n%=mo;        //k%=(mo-1);        wdc++;        printf("Case #%d: %d\n",wdc,qsm(n,k));    }}
原创粉丝点击