VT09 - Tìm số nguyên tố trong mảng

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

Cho mảng ~A~ gồm ~n~ số nguyên, hãy viết chương trình tìm và in ra các số nguyên tố có trong mảng

Input

  • Dòng đầu tiên là số nguyên dương ~n~
  • Dòng tiếp theo là ~n~ số nguyên tương ứng là các phần tử của mảng ~A~

Trong đó

  • ~n \le 10^4~
  • ~|A_{ij}| \le 1000~

Output

Xuất ra các số nguyên tố có trong mảng, yêu cầu:

  • Theo thứ tự tăng dần
  • Chỉ in ra 1 lần cho dù số nguyên tố đó xuất hiện nhiều hơn 1 lần
  • Các số nguyên tố cách nhau bằng 1 dấu cách

Sample

Input #1
4
1 2 2 3
Output #1
2 3

Bình luận

Please read the guidelines before commenting.



  • 0
    tuananh264dz  đã bình luận lúc 20, Tháng 5, 2026, 20:58

    include <bits/stdc++.h>

    using namespace std; using ll = long long; bool check(int n){ for(int i = 2; i <= sqrt(n); i++){ if(n % i == 0) return false; } return n > 1; } int main(){ int n; cin >> n; int a[n]; for(int i = 0; i < n; i++){ cin >> a[i]; } for(int i = 0; i < n; i++){ for(int j = i + 1; j < n; j++){ if(a[i] > a[j]){ int tmp = a[i]; a[i] = a[j]; a[j] = tmp; } } } for(int i = 0; i < n; i++){ if(check(a[i])){ if(a[i] != a[i - 1]) cout << a[i] << " "; } } }


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

    good


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

    include <bits/stdc++.h>

    define ll long long

    using namespace std; ll n,a[100011]; bool gay(int n) { if(n<2) return false; for(int i=2;i*i<=n;i++){ if(n%i==0) return false; } return true; } int main() { cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; } sort(a,a+n); for(int i=0;i<n;i++){ if(gay(a[i])){ if(i==0 || a[i]!=a[i-1]){ cout<<a[i]<< " "; } } } return 0; }


  • 0
    kleanh14  đã bình luận lúc 1, Tháng 4, 2026, 13:45

    include <bits/stdc++.h>

    using namespace std; long long n,a[1001]; int main() { cin>>n; for(int i=1 ; i<=n ; i++) { cin>>a[i]; } sort(a+1 , a+n+1); for(int i=1 ; i<=n ; i++) { int ok=0; if(a[i]>=2) { if(i > 1 && a[i] == a[i-1]) continue; ok=1; for(int j=2 ; j*j<=a[i] ; j++) { if(a[i]%j==0) { ok=0; break; } } } if(ok) { cout<<a[i]<<" "; } } }


  • 1
    maitiencuong151212  đã bình luận lúc 27, Tháng 3, 2026, 4:05

    giúp em với mọi người em đọc không hiểu ạ ai giúp giảng với ạ


  • -4
    kleanh14  đã bình luận lúc 26, Tháng 3, 2026, 11:59

    ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi ai hoi


  • -3
    kleanh14  đã bình luận lúc 26, Tháng 3, 2026, 11:52

    bimbimbambam


  • -3
    vuducnhatthanh  đã bình luận lúc 9, Tháng 3, 2026, 14:28

    bai full ac de hieu cho anh em :

    include <stdio.h>

    include <math.h>

    int isPrime(int x) { if (x < 2) return 0; for (int i = 2; i * i <= x; i++) { if (x % i == 0) return 0; } return 1; }

    int main() { int n; scanf("%d", &n); int a[n]; for (int i = 0; i < n; i++) { scanf("%d", &a[i]); }

    // Sắp xếp mảng để nhóm các số giống nhau và tăng dần
    for (int i = 0; i < n - 1; i++) {
        for (int j = i + 1; j < n; j++) {
            if (a[i] > a[j]) {
                int temp = a[i];
                a[i] = a[j];
                a[j] = temp;
            }
        }
    }
    
    int lastPrinted = -1; // Biến để theo dõi số đã in
    for (int i = 0; i < n; i++) {
        // Chỉ in nếu là số nguyên tố và chưa in số này trước đó
        if (a[i] != lastPrinted && isPrime(a[i])) {
            printf("%d ", a[i]);
            lastPrinted = a[i];
        }
    }
    return 0;
    

    }


  • -2
    hoangquockhanh12345  đã bình luận lúc 8, Tháng 3, 2026, 11:05

    include <bits/stdc++.h>

    using namespace std; bool ktnt(long long n){ if(n<=1) { return false; } for(long long i=2;i*i<=n;i++){ if(n%i==0){ return false; } } return true; } int main() { long long n,a[10005]; cin>>n; for(long long i=0;i<n;i++){ cin>>a[i]; } sort(a,a+n); for(long long i=0;i<n;i++){ if(ktnt(a[i])){ if(i==0||a[i]!=a[i-1]){ cout<<a[i]<<" "; } } } }


  • -3
    hoangquockhanh12345  đã bình luận lúc 8, Tháng 3, 2026, 11:05

    include <bits/stdc++.h>

    using namespace std; bool ktnt(long long n){ if(n<=1) { return false; } for(long long i=2;i*i<=n;i++){ if(n%i==0){ return false; } } return true; } int main() { long long n,a[10005]; cin>>n; for(long long i=0;i<n;i++){ cin>>a[i]; } sort(a,a+n); for(long long i=0;i<n;i++){ if(ktnt(a[i])){ if(i==0||a[i]!=a[i-1]){ cout<<a[i]<<" "; } } } }


  • -4
    nhankiettvt  đã bình luận lúc 29, Tháng 1, 2026, 8:02

    HÚP ĐI AE=))

    #include <bits/stdc++.h>
    using namespace std;
    using ll = long long;
    using ull = unsigned long long;
    bool nt(int n)
    {
        if (n <= 1)
            return 0;
        else if (n <= 3)
            return 1;
        else if (n % 2 == 0 || n % 3 == 0)
            return 0;
        for (int i = 5; i * i <= n; i += 6)
        {
            if (n % i == 0 || n % (i + 2) == 0)
            {
                return 0;
            }
        }
        return 1;
    }
    int main()
    {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
        int n;
        cin >> n;
        vector<int> a(n);
        for (auto &i : a)
        {
            cin >> i;
        }
        set<int> s;
        for (int i = 0; i < n; i++)
        {
            if (nt(a[i]))
                s.insert(a[i]);
        }
        for (int i : s)
            cout << i << ' ';
        return 0;
    }
    

  • -1
    tranvu281214  đã bình luận lúc 19, Tháng 1, 2026, 9:05

    cai thang dng chim to


  • -5
    HPNdeptra  đã bình luận lúc 4, Tháng 1, 2026, 15:38

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • 4
    Duong_Thanh_Khiem_L8  đã bình luận lúc 29, Tháng 11, 2025, 15:28

    FULL AC:

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
    
        int n;
        if (!(cin >> n)) return 0;
        vector<int> a(n);
        for (int i = 0; i < n; ++i) cin >> a[i];
    
        const int LIMIT = 1000;            // vì |A[i]| <= 1000
        vector<bool> isPrime(LIMIT + 1, true);
        isPrime[0] = isPrime[1] = false;
        for (int p = 2; p * p <= LIMIT; ++p) {
            if (isPrime[p]) {
                for (int q = p * p; q <= LIMIT; q += p)
                    isPrime[q] = false;
            }
        }
    
        set<int> primes; // tự động sắp và loại trùng
        for (int x : a) {
            if (x > 1 && x <= LIMIT && isPrime[x]) primes.insert(x);
            // nếu x < 0 hoặc x > LIMIT thì bỏ (theo ràng buộc đề thì ko cần xử lý >LIMIT)
        }
    
        bool first = true;
        for (int p : primes) {
            if (!first) cout << ' ';
            cout << p;
            first = false;
        }
        cout << '\n';
        return 0;
    }
    

    • -3
      nhankiettvt  đã bình luận lúc 29, Tháng 1, 2026, 8:03

      bài này mà cũng sàng à bro=))


  • -4
    Lucaz  đã bình luận lúc 22, Tháng 11, 2025, 12:31

    ....fhhjd


  • -7
    Lucaz  đã bình luận lúc 22, Tháng 11, 2025, 12:30

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -10
    hoanglamnguyen03092014  đã bình luận lúc 22, Tháng 11, 2025, 2:20

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -7
    idk17276  đã bình luận lúc 2, Tháng 10, 2025, 9:50

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -4
    Klb_0063  đã bình luận lúc 27, Tháng 9, 2025, 2:39

    cho ban ay xin cai tieu cuc nhe


  • -11
    super_god  đã bình luận lúc 8, Tháng 10, 2024, 2:36

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -4
    trinhbaonam  đã bình luận lúc 14, Tháng 3, 2025, 8:29

    trong cuoc song nay chi co lam thi moi co an ko lam ma doi co an thi chi co an skibidi


  • 1
    MinhVu2018  đã bình luận lúc 11, Tháng 1, 2025, 7:47

    bài này viết code nhìn đẹp quá. Bạn cho mình hỏi đoạn này với: if (a[i] != a[i - 1]) --> Như này thì nó xét 2 phần tử gần nhau thôi hay đến a[i] nó xét a[i] với tất cả các phần tử trước a[i] nhỉ? Chỗ này mình vẫn chưa hiểu lắm,mong bạn giải thích giúp mình với.Cảm ơn bạn


  • 0
    hailuacx  đã bình luận lúc 15, Tháng 1, 2024, 14:59

    Có rất nhiều cách làm, đây là một cách:

    • Sắp xếp tăng dần,
    • Dùng set để lưu các số nguyên tố (đảm bảo không có phần tử giống nhau). Sau duyệt set là được.