Cerința
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 <bits/stdc++.h> using namespace std; int n , k , x , nr; int main() { cin >> n >> k; for(int i = 1 ; i <= n ; i++) { cin >> x; int c = 1; while(x != 0) { if(x % k > 1) { c = 0; break; } x /= k; } if(c) nr++; } cout << nr; return 0; }