MT06 - Tìm số chính phương trong ma trận

Xem dạng PDF

Gửi bài giải


Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, PyPy, Python, Ruby, Rust, Scratch, Swift

Viết chương trình nhập ma trận các số nguyên ~A~ có ~m~ dòng và ~n~ cột từ bàn phím. Hãy tìm và liệt kê các số chính phương có trong ma trận ~A~ theo thứ tự tăng dần và mỗi số chính phương đó chỉ liệt kê 1 lần (bỏ qua nếu đã liệt kê)

Input

  • Dòng đầu tiên là 2 số nguyên dương ~m~, ~n~
  • ~m~ dòng tiếp theo, mỗi dòng là ~n~ số nguyên tương ứng là các phần tử trên hàng tương ứng của ma trận ~A~

Giới hạn

  • ~2 \le m, n \le 100~
  • ~|A_{ij}| \le 10000~

Output

  • Danh sách các số chính phương có trong ma trận theo thứ tự tăng dần & không có trùng lặp. Mỗi số cách nhau bởi 1 dấu cách.
  • Nếu không có số chính phương nào trong ma trận ~A~, in ra NOT FOUND

Sample

Input #1
3 4
7 8 9 5
4 5 6 7
8 2 3 4
Output #1
4 9

Bình luận

Please read the guidelines before commenting.



  • -1
    minhtai2013vn  đã bình luận lúc 1, Tháng 4, 2026, 12:53

    4 #include <bits/stdc++.h> using namespace std;

    bool isSquare(int x) { if (x < 0) return false; int t = sqrt(x); return t * t == x; }

    int main() { int m, n; cin >> m >> n; set<int> s;

    for (int i = 0; i < m; i++)
        for (int j = 0; j < n; j++) {
            int x; cin >> x;
            if (isSquare(x)) s.insert(x);
        }
    
    if (s.empty()) cout << "NOT FOUND";
    else {
        for (int x : s) cout << x << " ";
    }
    

    }


  • -1
    minhtai2013vn  đã bình luận lúc 1, Tháng 4, 2026, 12:50

    lên cho anh em code 6 #include <bits/stdc++.h> using namespace std;

    bool isSquare(int x) { if (x < 0) return false; int t = sqrt(x); return t * t == x; }

    int main() { int m, n; cin >> m >> n; set<int> s;

    for (int i = 0; i < m; i++)
        for (int j = 0; j < n; j++) {
            int x; cin >> x;
            if (isSquare(x)) s.insert(x);
        }
    
    if (s.empty()) cout << "NOT FOUND";
    else {
        for (int x : s) cout << x << " ";
    }
    

    }


  • -1
    phuthien123  đã bình luận lúc 1, Tháng 4, 2026, 12:39 sửa 5

    bài hay


  • -1
    phat251013  đã bình luận lúc 1, Tháng 4, 2026, 12:39

    bài quá hayyyyyy


  • 0
    congtyluuthaibao1978  đã bình luận lúc 25, Tháng 11, 2025, 5:14

    include <bits/stdc++.h>

    using namespace std; int main() { int m,n; cin>>m>>n; set<int>squares; for(int i=0;i<m;i++) { for(int j=0;j<n;j++) { int x; cin>>x; if(x>=0) { int r=sqrt(x); if(r*r==x) squares.insert(x); } } }

    if(squares.empty()){
        cout << "NOT FOUND";
    } else {
        bool first = true;
        for(int x : squares){
            if(!first) cout << ' ';
            cout << x;
            first = false;
        }
    }
    
    return 0;
    

    }


    • -1
      minhtai2013vn  đã bình luận lúc 1, Tháng 4, 2026, 13:04

      code đúng #include <bits/stdc++.h> using namespace std;

      bool isSquare(int x) { if (x < 0) return false; int t = sqrt(x); return t * t == x; }

      int main() { int m, n; cin >> m >> n; set<int> s;

      for (int i = 0; i < m; i++)
          for (int j = 0; j < n; j++) {
              int x; cin >> x;
              if (isSquare(x)) s.insert(x);
          }
      
      if (s.empty()) cout << "NOT FOUND";
      else {
          for (int x : s) cout << x << " ";
      }
      

      }


  • 0
    datleyt29102005  đã bình luận lúc 7, Tháng 3, 2024, 15:28

    anh em lưu ý số 1 cũng là số chính phương nhé =))


  • 3
    chinhle  đã bình luận lúc 3, Tháng 2, 2024, 3:52

    co truong hop la so am anh em chu y


  • 2
    chinhle  đã bình luận lúc 3, Tháng 2, 2024, 3:37

    test cuoi la trong A khong co so chinh phuong


  • 0
    kimtuan15  đã bình luận lúc 3, Tháng 1, 2024, 3:49

    cho vào set thôi