SGU 117.Counting

时间限制: 0.25 sec.

空间限制: 4096 KB

 

题目大意

                 给你n,m,k(都小于10001),和 n 个数,求这n个数中有多少个数的m次幂能够整除k。(即 n i^m % k==0)。

 

 

solution

                快速幂取余。

 

 

参考代码

 

 

 1 #include <iostream>
 2 using namespace std;
 3 
 4 __int64 Quikpower(__int64 a,__int64 d,__int64 n){
 5     __int64 k = 1;
 6     while ( d > 0){
 7               if (d & 1) k = (k*a)%n;
 8               a=(a*a)%n;
 9               d>>=1;
10        }
11     return k;
12 }
13 int n,m,k,ans,x;
14 int main(){
15        cin>>n>>m>>k;
16        for(int i=1;i<=n;i++){
17               cin>>x;
18               if(Quikpower(x,m,k)==0) ans++;
19        }
20        cout<<ans;
21        return 0;
22 }

 

 

 

 

posted @ 2014-06-30 21:04  keambar  阅读(159)  评论(0编辑  收藏  举报