#include <iostream>
#include <vector>
using namespace std;
void primeFactors(int n) {
// Vector để lưu trữ các thừa số nguyên tố
vector<int> factors;
// Phân tích số n thành các thừa số nguyên tố
for (int i = 2; i * i <= n; i++) {
while (n % i == 0) {
factors.push_back(i);
n /= i;
}
}
// Nếu n còn lại sau khi phân tích, nó cũng là một thừa số nguyên tố
if (n > 1) {
factors.push_back(n);
}
// In ra các thừa số nguyên tố
cout << "Cac thua so nguyen to cua " << n << " la: ";
for (int i = 0; i < factors.size(); i++) {
cout << factors[i];
if (i != factors.size() - 1) {
cout << " * ";
}
}
cout << endl;
}
int main() {
int n;
cout << "Nhap vao mot so nguyen duong: ";
cin >> n;
cout << endl;
primeFactors(n);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgcHJpbWVGYWN0b3JzKGludCBuKSB7CiAgICAvLyBWZWN0b3IgxJHhu4MgbMawdSB0cuG7ryBjw6FjIHRo4burYSBz4buRIG5ndXnDqm4gdOG7kQogICAgdmVjdG9yPGludD4gZmFjdG9yczsKCiAgICAvLyBQaMOibiB0w61jaCBz4buRIG4gdGjDoG5oIGPDoWMgdGjhu6thIHPhu5Egbmd1ecOqbiB04buRCiAgICBmb3IgKGludCBpID0gMjsgaSAqIGkgPD0gbjsgaSsrKSB7CiAgICAgICAgd2hpbGUgKG4gJSBpID09IDApIHsKICAgICAgICAgICAgZmFjdG9ycy5wdXNoX2JhY2soaSk7CiAgICAgICAgICAgIG4gLz0gaTsKICAgICAgICB9CiAgICB9CiAgICAKICAgIC8vIE7hur91IG4gY8OybiBs4bqhaSBzYXUga2hpIHBow6JuIHTDrWNoLCBuw7MgY8WpbmcgbMOgIG3hu5l0IHRo4burYSBz4buRIG5ndXnDqm4gdOG7kQogICAgaWYgKG4gPiAxKSB7CiAgICAgICAgZmFjdG9ycy5wdXNoX2JhY2sobik7CiAgICB9CgogICAgLy8gSW4gcmEgY8OhYyB0aOG7q2Egc+G7kSBuZ3V5w6puIHThu5EKICAgIGNvdXQgPDwgIkNhYyB0aHVhIHNvIG5ndXllbiB0byBjdWEgIiA8PCBuIDw8ICIgbGE6ICI7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IGZhY3RvcnMuc2l6ZSgpOyBpKyspIHsKICAgICAgICBjb3V0IDw8IGZhY3RvcnNbaV07CiAgICAgICAgaWYgKGkgIT0gZmFjdG9ycy5zaXplKCkgLSAxKSB7CiAgICAgICAgICAgIGNvdXQgPDwgIiAqICI7CiAgICAgICAgfQogICAgfQogICAgY291dCA8PCBlbmRsOwp9CgppbnQgbWFpbigpIHsKICAgIGludCBuOwogICAgY291dCA8PCAiTmhhcCB2YW8gbW90IHNvIG5ndXllbiBkdW9uZzogIjsKICAgIGNpbiA+PiBuOwogICAgY291dCA8PCBlbmRsOwogICAgcHJpbWVGYWN0b3JzKG4pOwogICAgcmV0dXJuIDA7Cn0K