Submission

Status:
TPTTT-TT-T

Score: 10

User: K3

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

Language: cpp

Time: 1.078 second

Submitted On: 2024-11-20 18:52:20

#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<50000;i++) {
        if(isprime(i)) {
            v.push_back(i);
        }
    }
    map<int,int> m;
    while (n > 1) {
        for (auto x : v) {
            if (n%x == 0) {
                m[x]++;
                n /= x;
            }
            if (n == 1) break;
            if (isprime(n)) {
                m[n]++;
                break;
            }
        }
    }
    for (auto x : m) {
        cout << x.first << "^" << x.second << " ";
    }
}