Код для задачи на с++
Напишите программу, которая выполняет разложение натурального числа на простые сомножители (возможно, кратные).
Входные данные
Входная строка содержит натуральное число N .
Выходные данные
Программа должна вывести в одной строке все простые сомножители числа N , разделив их пробелами.
#include <iostream>
#include <vector>
using namespace std;
int main() {
long long n; // Вводим число
cin >> n;
vector<int> prime_factors; // Вектор для хранения простых множителей
// Ищем простые множители, начиная с 2
for (long long i = 2; i * i <= n; ++i) {
while (n % i == 0) { // Пока число делится на i
prime_factors.push_back(i); // Добавляем множитель в список
n /= i; // Делим число на i
}
}
// Если остаток больше 1, это тоже простой множитель
if (n > 1) {
prime_factors.push_back(n);
}
// Выводим все найденные простые множители через пробел
for (size_t i = 0; i < prime_factors.size(); ++i) {
cout << prime_factors[i] << (i < prime_factors.size() - 1 ? ' ' : '');
}
return 0;
}
Если ввести простое число, например, 97, то оно и будет выведено.