SGU 117.Counting

时间:2023-03-09 19:21:08
SGU 117.Counting

时间限制: 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 ;
}