Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- vector<int> GetPrimeFactors(int n) {
- vector<int> prime;
- // get the 2 prime factors
- while (n % 2 == 0) {
- prime.push_back(2);
- n /= 2;
- }
- // get the other prime factors (starting from 3 and
- // skipping every even number because we already did it above)
- for (int i = 3; i * i <= n; i += 2) {
- while (n % i == 0) {
- prime.push_back(i);
- n /= i;
- }
- }
- // if n is still greater than 2, then store n itself (it means n is a prime number)
- if (n > 2) {
- prime.push_back(n);
- }
- return prime;
- }
- int main() {
- int n;
- cin >> n;
- vector<int> factors = GetPrimeFactors(n);
- for (auto& e : factors) {
- cout << e << " ";
- }
- cout << '\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement