Submission

Status:
PPPPPPPPPP

Score: 100

User: K3

Problemset: แยกตัวประกอบ

Language: cpp

Time: 0.004 second

Submitted On: 2024-11-20 18:57:25

#include <bits/stdc++.h>
using namespace std;

bool isprime(int x) {
    if (x <= 1) return false;
    for (int i = 2; i * i <= x; i++) {
        if (x % i == 0) return false;
    }
    return true;
}

int main() {
    int n; cin >> n;
    vector<int> v;
    for (int i = 2; i*i <= n; i++) {
        if (isprime(i)) {
            v.push_back(i);
        }
    }

    map<int, int> m;
    for (auto x : v) {
        while (n % x == 0) {
            m[x]++;
            n /= x;
        }
        if (n == 1) break;
    }
    if (n > 1) {
        m[n]++;
    }
    for (auto x : m) {
        cout << x.first << "^" << x.second << " ";
    }

    return 0;
}