Bài toán. Liệt kê các số chính phương có trong dãy số a. Nếu không có ghi số -1. Ví dụ:
SOCP.INP | SOCP.OUT |
10 3 4 7 5 9 3 16 21 36 8 | 4 9 16 36 |
Code tham khảo:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 | #include <iostream> #include <cmath> using namespace std; int main() { freopen ( "SOCP.INP" , "r" ,stdin); freopen ( "SOCP.OUT" , "w" ,stdout); int n, a[1000]; cin >> n; for ( int i=0; i < n; i++) { cin >> a[i]; } int p = 0; for ( int i = 1; i < n; i++) if ( sqrt (a[i]) == trunc( sqrt (a[i]))) { cout << a[i] << " " ; p = 1; } if (p == 0) cout << -1; return 0; } |
Các bạn có thể code và chấm thử ở đây