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

View as PDF

Submit solution

Points: 1.00 (partial)
Time limit: 1.0s
Memory limit: 256M

Author:
Problem type
Allowed languages
C, C#, C++, Go, Java, Pascal, Perl, PHP, 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

Comments

Please read the guidelines before commenting.



  • 0
    Baohuy08w  commented on Dec. 17, 2024, 2:37 p.m. edited
    1. #include <bits/stdc++.h> using namespace std;

    int dem[10000001]; bool check(long long n) { if (n < 1) return false; long long tam = sqrt(n); if(tam*tam == n){ return true; } else return false; }

    int main() { int n, m; cin >> n >> m; long long A[n][m]; vector<long long> B; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cin >> A[i][j]; } } for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (check(A[i][j])&&dem[A[i][j]]==0){ B.pushback(A[i][j]); dem[A[i][j]]=1; } } } if (B.empty()) { cout << "NOT FOUND"; } else { sort(B.begin(), B.end()); for (sizet i = 0; i < B.size(); i++) { cout << B[i] << " "; } } }


  • 0
    sugardaddy  commented on Oct. 21, 2024, 2:30 p.m.

    dung ham kiem tra scp r duyet qua tung phan tu,neu co them 1 phan tu la scp thi tang bien kiem tra len 1 dv sau thoat khoi vong lap thi kiem tra xem bien cua minh van giu nguyen gia tri hay da thay doi


  • -1
    phinguyen18  commented on Aug. 2, 2024, 3:59 a.m.

    O(n^2) anh em

    define ll long long

    include<bits/stdc++.h>

    using namespace std; void input(ll a[][100],ll n,ll m){ for(ll i=0;i<n;i++){ for(ll j=0;j<m;j++){ cin>>a[i][j]; } } } int main (){ iosbase::syncwith_stdio(0);cin.tie(0);cout.tie(0); ll n,m,a[100][100]; cin>>n>>m; input(a,n,m);

    bool test = false; const int MAXVAL = 1e6; vector<bool> marked(MAXVAL + 1, false); vector<int> s; for(ll i=0;i<n;i++){ for(ll j=0;j<m;j++){ ll check=sqrt(a[i][j]); if(check*check==a[i][j]&&!marked[a[i][j]]){ s.push_back(a[i][j]); marked[a[i][j]] = true; test = true; } else { false; } } }

    for(ll i =0;i&lt;s.size();i++){
         for(ll j = i+1;j&lt;s.size();j++){
            if(s[i]>s[j]){
                swap(s[i],s[j]);
             }
         }
    }
    
    if(!test){
        cout<<"NOT FOUND";
    }
    else {
            for(ll i=0;i&lt;s.size();i++){
        cout<&lt;s[i]<<" ";
    }
    }
    
    
    
    return 0;
    

    }


  • 1
    datleyt29102005  commented on March 7, 2024, 3:28 p.m.

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


  • 2
    chinhle  commented on Feb. 3, 2024, 3:52 a.m.

    co truong hop la so am anh em chu y


  • 0
    chinhle  commented on Feb. 3, 2024, 3:37 a.m.

    test cuoi la trong A khong co so chinh phuong


  • 0
    kimtuan15  commented on Jan. 3, 2024, 3:49 a.m.

    cho vào set thôi