时间限制: 0.25 sec.
空间限制: 4096 KB
题目大意:
给你n,m,k(都小于10001),和 n 个数,求这n个数中有多少个数的m次幂能够整除k。(即 n i^m % k==0)。
solution:
快速幂取余。
参考代码
#include <iostream>
using namespace std; __int64 Quikpower(__int64 a,__int64 d,__int64 n){
__int64 k = ;
while ( d > ){
if (d & ) k = (k*a)%n;
a=(a*a)%n;
d>>=;
}
return k;
}
int n,m,k,ans,x;
int main(){
cin>>n>>m>>k;
for(int i=;i<=n;i++){
cin>>x;
if(Quikpower(x,m,k)==) ans++;
}
cout<<ans;
return ;
}