19/11/2018, 19:41

Phân tích số nguyên n thành tích các số nguyên tố trong C++

Học lập trình C++ Đề bài : viết chương trình phân tích số nguyên n thành các thừa số nguyên tố. Ví dụ: 12 = 2 x 2 x 3. Lời giải /** * Chuong trinh phan tich so nguyen n thanh tich cac thua so nguyen to * Vi du: 12 = 2 x 2 x 3. * * @author viettuts.vn ...

Học lập trình C++

Đề bài: viết chương trình phân tích số nguyên n thành các thừa số nguyên tố. Ví dụ: 12 = 2 x 2 x 3.

Lời giải

/**
 * Chuong trinh phan tich so nguyen n thanh tich cac thua so nguyen to
 * Vi du: 12 = 2 x 2 x 3.
 * 
 * @author viettuts.vn
 */
#include <iostream>
#include <cmath>

using namespace std;

/**
 * Phan tich so nguyen n thanh tich cac thua so nguyen to
 */
void phanTichSoNguyen(int n) {
    int i = 2;
    int dem = 0;
    int a[100];
    // phan tich
    while (n > 1) {
        if (n % i == 0) {
            n = n / i;
            a[dem++] = i;
        } else {
            i++;
        }
    }
    // neu dem = 0 thi n la nguyen to
    if (dem == 0) {
        a[dem++] = n;
    }
    // in ket qua ra man hinh
    for (i = 0; i < dem - 1; i++) {
        printf("%d x ", a[i]);
    }
    printf("%d", a[dem - 1]);
}

/**
 * Ham main
 */
int main() {
	int n;
    cout << "Nhap so nguyen duong n = ";
    cin >> n;
    // phan tich so nguyen duong n
    phanTichSoNguyen(n);
}

Kết quả:

Nhap so nguyen duong n = 120
2 x 2 x 2 x 3 x 5
Học lập trình C++
0