首页 > 其他 > 详细

CSU 1556 Pseudoprime numbers

时间:2016-02-15 00:48:59      阅读:172      评论:0      收藏:0      [点我收藏+]

情人节第一趴!!!!!

 

题目大致:求1m + 2m + 3m + …… + nm的值。输入多组n,m。输出对应一个结果。

解题思路:利用快速幂的思想啦=,=

 

代码如下:

#include<stdio.h>
long long k=1e9+7;

(位运算的方法)
long long quickpow(long long a, long long m)
{
        if(m==0) return 1;//0次方
        long long sum=1;
        while(m>0)
        {
            if(m & 1)
                sum=(sum*a) % k;
            m=m>>1;
            a=(a*a)%k;
        }
        return sum;
}


int main()
{
        long long n=0,m=0;
        int i;
        while(scanf("%lld %I64d", &n, &m)!=EOF)
        {
            long long result=0;
            for( i=1; i<=n; i++)
            {
                result=(result+quickpow(i,m))% k;
            }
            printf("%lld\n", result);
        }
        return 0;
}

CSU 1556 Pseudoprime numbers

原文:http://www.cnblogs.com/ivangin/p/5189751.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!