300
Cerinţa
Se dau n
numere naturale şi un număr natural k
. Afişaţi în ordine crescătoare acele numere date care sunt puteri ale lui k
.
Date de intrare
Fişierul de intrare puterik.in
conţine pe prima linie numerele n
şi k
, iar pe a doua linie n
numere naturale separate prin spaţii.
Date de ieşire
Fişierul de ieşire puterik.out
va conţine pe prima linie numerele care sunt puteri ale lui k
, separate printr-un spaţiu, în ordine crescătoare.
Restricţii şi precizări
1 ≤ n ≤ 100
2 ≤ k ≤ 10
- numerele de pe a doua linie a fişierului de intrare vor avea cel mult
8
cifre
Exemplu
puterik.in
8 2 32 56 317 809 256 2 1 60
puterik.out
1 2 32 256
#include <bits/stdc++.h> using namespace std; ifstream fin("puterik.in"); ofstream fout("puterik.out"); int put(int n , int k) { int p = 1; for(int i = 0 ; p < n ; ++i) { p*=k; } if(p==n) return 1; else return 0; } int main() { int n , k; fin >> n >> k; int a[100]; for(int i = 0 ; i < n ; ++i) fin >> a[i]; sort(a, a+n); for(int i = 0 ; i < n ; ++i) { if(put(a[i],k)) fout << a[i] << ' '; } fin.close(); fout.close(); return 0; }
Comentarii