HDU 6063 RXD and math
2017-08-02 21:53
330 查看
RXD and math
[align=left]Problem Description[/align]RXD is a good mathematician.
One day he wants to calculate:
∑i=1nkμ2(i)×⌊nki−−−√⌋
output the answer module 109+7.
1≤n,k≤1018
μ(n)=1(n=1)
μ(n)=(−1)k(n=p1p2…pk)
μ(n)=0(otherwise)
p1,p2,p3…pk
are different prime numbers
[align=left]Input[/align]
There are several test cases, please keep reading until EOF.
There are exact 10000 cases.
For each test case, there are 2 numbers n,k.
[align=left]Output[/align]
For each test case, output "Case #x: y", which means the test case number and the answer.
[align=left]Sample Input[/align]
10 10
[align=left]Sample Output[/align]
Case #1: 999999937
这道题刚开始的时候不知道μ函数是个什么意思,后来题目更新了之后我没怎么看题,队友直接给我说的题意,结果想了很久都没思路。
最后过了好久队友给我说题意不是这样的,化简完式子后就只剩下n^k了,直接快速幂就可以得到答案了。
AC代码:
#include <iostream>
#include <stdio.h>
#include <cmath>
using namespace std;
const int mod = 1e9+7;
long long int quick_pow(long long int a,long long int b,long long int m)
{
long long int ans=1;
while(b)
{
if(b&1)
ans=ans*a%m;
b>>=1;
a=a*a%m;
}
return ans;
}
int main()
{
int T=1;
long long int n,k;
while(~scanf("%I64d %I64d",&n,&k))
{
printf("Case #%d: %I64d\n",T++,quick_pow(n%mod,k,mod));
}
return 0;
}
相关文章推荐
- HDU 6063 RXD and math(数论)
- RXD and math(HDU 6063 快速幂)
- hdu 6063 RXD and math(快速幂)
- 多校3 HDU - 6063 RXD and math 数学
- 17 多校 3 - 1008 - RXD and math(HDU 6063)
- HDU 6063-RXD and math
- HDU-6063-RXD and math-
- HDU 6063 RXD and math (打表)
- hdu-6063-RXD and math
- HDU--6063--RXD and math
- H - RXD and math HDU - 6063 多校第三场
- RXD and math HDU - 6063
- HDU 6063 RXD and math【数学】
- HDU 6063 17多校3 RXD and math(暴力打表题)
- Hdu 6063 - RXD and math(思维)
- hdu 6063 RXD and math (规律题)
- HDU 6063 RXD and math(快速幂)
- (打表或数学)HDU 6063 RXD and math
- HDU 6063 RXD and math+(快速幂)+多校联赛第三场
- HDU 6063 RXD and math