在 C++ 中列印一組素數因子是 X 素數因子的子集的所有數字
在此問題中,我們給定了一組 N 個數字和一個數字 X。我們必須列印陣列中所有數字,其素數因子的集合是 X 的素數因子的子集。
讓我們舉一個例子來理解這個問題
Input: X= 30 , array = {2, 3, 6, 10, 12}
Output : 2 3 6為解決此問題,我們必須遍歷陣列的元素。用gcd將此元素除以(元素、x)。重複除法,直到 gcd 變為 1。然後列印剩餘的數字。
示例
#include <bits/stdc++.h>
using namespace std;
void printPrimeSet(int a[], int n, int x){
bool flag = false;
for (int i = 0; i < n; i++) {
int num = a[i];
int g = __gcd(num, x);
while (g != 1) {
num /= g;
g = __gcd(num, x);
}
if (num == 1) {
flag = true;
cout<<a[i]<<" ";
}
}
if (!flag)
cout << "There are no such numbers";
}
int main(){
int x = 60;
int a[] = { 2, 5, 10, 7, 17 };
int n = sizeof(a) / sizeof(a[0]);
cout<<"Numbers whose set of prime numbers is subset of set of prime factor of "<<x<<"\n";
printPrimeSet(a, n, x);
return 0;
}輸出
其素數集合是 60 的素數因子集合的子集的數字
2 5 10
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP