A - Counting
Crawling in process...
Crawling failed
Time Limit:250MS Memory Limit:4096KB 64bit IO Format:%I64d & %I64u
Description
Find amount of numbers for given sequence of integer numbers such that after raising them to the M-th power they will be divided by K.
Input
Input consists of two lines. There are three integer numbers N, M, K(0<N, M, K<10001) on the first line. There are N positive integer numbers − given sequence (each number is not more than 10001) − on the second line.
Output
Write answer for given task.
Sample Input
4 2 50 9 10 11 12
Sample Output
1
此题简单的快速幂,题意是:N的M次方%K
#include<iostream> using namespace std; long long quick_pow(int n,int base,int k) { long long ans=1; long long multi=base; while(n) { if(n%2) ans*=multi; ans%=k; n/=2; multi*=multi; multi%=k; } return ans; } int main() { int n,m,k,a[10002]; long long p; cin>>n>>m>>k;int sum=0; for(int i=0;i<n;i++) { cin>>a[i]; p=quick_pow(m,a[i],k); if(p%k==0)sum++; } cout<<sum<<endl; return 0; }