Se dau n
numere naturale. Aflați câte dintre acestea se pot scrie ca sumă de puteri distincte ale unui număr natural k
.
Date de intrare
Programul citește de la tastatură numerele n
și k
, iar apoi n
numere naturale, separate prin spații.
Date de ieșire
Programul va afișa pe ecran numărul de numere din șirul dat care se pot scrie ca sumă de puteri distincte ale lui k
.
Restricții și precizări
1 ≤ n ≤ 100.000
2 ≤ k ≤ 10
- cele
n
numere citite vor fi mai mici decât1.000.000.000
Exemplu
Intrare
5 3 6 37 12 9 5
Ieșire
3
Explicație
Avem 37=3
3
+3
2
+3
0
, 12 = 3
2
+3
1
, 9 = 3
2
, deci 3
numere se pot scrie ca sumă de puteri distincte ale lui 3
( pentru 6
avem 6 = 3 + 3
, iar 5 = 3 + 1 + 1
nu convin ).
#include <iostream> using namespace std; int main() { int n,k,x,cnt= 0; int ok; cin>>n>>k; for(int i=1;i<=n;i++) { cin>>x; ok = 1; while(x) { if(x % k > 1) ok = 0; x/=k; } if(ok) cnt++; } cout<<cnt; return 0; }