Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ kiểm tra mảng số nguyên tố cùng nhau từng cặp/tập hợp

Mô tả bài toán

Cho mảng nums kích thước n. Phân loại:

  • Pairwise coprime: mọi cặp (i,j) có gcd(nums[i],nums[j])=1.
  • Setwise coprime: gcd của toàn bộ mảng = 1.
  • Không coprime: trường hợp còn lại.

Ví dụ

n=4, nums={7,11,13,17}. Đầu ra: Pairwise coprime.

Thuật toán (Sàng ước số)

  1. Tính gcdVal của toàn mảng. Nếu >1 → "not coprime".
  2. Mảng fac[x] đếm tần suất giá trị x.
  3. Sàng: với mỗi số nguyên tố k, đếm c = tổng fac[bội của k]. Nếu có nào có c>1 → không pairwise.
  4. Nếu pairwise → in "pairwise", ngược lại "setwise".

Đoạn mã C++

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

void solve(int n, int nums[]) {
    int fac[100]={0};
    bool checkPrime[100]={0};
    int gcdVal=0;
    for(int i=0;i

Đầu vào / Đầu ra

Input: 4, {7,11,13,17}

Output: Pairwise coprime