Hợp số

Xem dạng PDF

Gửi bài giải

Điểm: 8,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: hopso.inp
Output: hopso.out

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Hợp số là số nguyên dương lớn hơn 1 và có nhiều hơn 2 ước.

Yêu cầu: Hãy kiểm tra ~N~ số nguyên ~a_1, a_2,.., a_N~ có phải là hợp số hay không?

Dữ liệu vào:

Đọc dữ liệu từ file HOPSO.INP có cấu trúc như sau:

  • Dòng 1 gồm 1 số nguyên dương ~N~ (~N ≤ 10^5~)
  • N tiếp theo ghi các số nguyên ~a_1, a_2,.., a_N~ (~0 < a_i ≤ 10^5~)

Dữ liệu ra:

Ghi vào file HOPSO.OUT gồm:

  • ~N~ dòng, nếu ~a_i~ là hợp số thì ghi 1, nếu ~a_i~ không phải là hợp số ghi số 0.

Ví dụ:

input

3
1
3 
16

Output

0
0
1

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    BANGPHONG  đã bình luận lúc 26, Tháng 9, 2026, 9:47

    include<bits/stdc++.h>

    using namespace std; bool hopso(int n) {if(n <= 1) return false; for(int i = 2; i <= sqrt(n); i++) if(n % i == 0)return true; return false; } int main() { freopen("HOPSO.INP", "r", stdin); freopen("HOPSO.OUT", "w", stdout); int N, a[100005]; cin>>N; for(int i=1;i<=N;i++) {cin>>a[i]; if(hopso(a[i])) cout <<1<


  • -1
    dinhphong  đã bình luận lúc 26, Tháng 9, 2026, 9:43

    include<bits/stdc++.h>

    using namespace std; bool NT(long long k) { if (k < 2) return false; for (long long i = 2; i * i <= k; i++) { if (k % i == 0) return false; } return true; } int main() freopen("hopso.inp", "r", stdin); freopen("hopso.out", "w", stdout); { long long n; if (cin >> n) { if (!NT(n)) { cout<<0<<"\n"; return 0; } long long d=0; for (; n > 0; n /= 10) { d+=n%10; } if (NT(d)) { cout<<1<<"\n"; } else { cout<<0<<"\n"; } } return 0; }


    • 0
      dinhphong  đã bình luận lúc 26, Tháng 9, 2026, 9:48

      bao đúng ae nhá


      • 0
        dinhphong  đã bình luận lúc 26, Tháng 9, 2026, 9:49

        trust me bro


  • 0
    tranduchoa  đã bình luận lúc 26, Tháng 9, 2026, 1:57

    bool a[30000005]; void eratos(long long n) { a[0]=false;a[1]=false; for(int i=1;i<=n;i++)a[i]=true; for(int i=1;i<=trunc(sqrt(n));i++) if(a[i]) for(int j=i*i;j<=n;j+=i)a[j]=false; } int main() {cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; for(int i=1;i<=n;i++) if(a[i]) cout<<0<<'\n';else cout<<1<<'\n'; return 0; }