ND

lam giup minh code c++ hai bai nay voi

VH
9 tháng 9 lúc 17:18

Câu `3`:

#include <iostream>
#include <vector>

using namespace std;

// Hàm kiểm tra số nguyên tố
bool isPrime(int num) {
    if (num <= 1) return false;
    if (num <= 3) return true;
    if (num % 2 == 0 || num % 3 == 0) return false;
    for (int i = 5; i * i <= num; i += 6) {
        if (num % i == 0 || num % (i + 2) == 0)
            return false;
    }
    return true;
}

// Hàm tìm các ước nguyên tố của một số
vector<int> findPrimeFactors(int num) {
    vector<int> primeFactors;
    for (int i = 2; i * i <= num; i++) {
        while (num % i == 0) {
            primeFactors.push_back(i);
            num /= i;
        }
    }
    if (num > 1) primeFactors.push_back(num);
    return primeFactors;
}

// Hàm tính tổng các phần tử trong vector
int sum(const vector<int>& v) {
    int sum = 0;
    for (int num : v) {
        sum += num;
    }
    return sum;
}

int main() {
    int n, a, b;
    cin >> n >> a >> b;

    // Tìm các ước nguyên tố của n
    vector<int> primeFactors = findPrimeFactors(n);

    // Tính số nguyên tố rút gọn của n
    int reducedPrime = sum(primeFactors);
    cout << reducedPrime << endl;

    // Tìm các số từ a đến b có cùng số nguyên tố rút gọn
    for (int i = a; i <= b; ++i) {
        vector<int> factors = findPrimeFactors(i);
        if (sum(factors) == reducedPrime) {
            cout << i << " ";
        }
    }
    cout << endl;

    return 0;
}

Bình luận (0)

Các câu hỏi tương tự
NL
Xem chi tiết
21
Xem chi tiết
NH
Xem chi tiết
NH
Xem chi tiết
HL
Xem chi tiết
H24
Xem chi tiết
NH
Xem chi tiết
NH
Xem chi tiết
NH
Xem chi tiết
NH
Xem chi tiết