Submission
Status:
PPPPPPPPPP
Score: 100
User: Khiem
Problemset: แยกตัวประกอบ
Language: cpp
Time: 0.002 second
Submitted On: 2024-09-25 13:43:39
#include <bits/stdc++.h>
#define z exit(0)
using namespace std;
const int N = 8e5 + 5;
int v[N];
signed main(){
int n, m = 0; scanf("%d", &n);
for(int i = 1, j; i<=sqrt(n); ++i) if(!(n % i)) v[m++] = i, v[m++] = n/i;
sort(v, v+m); m = unique(v, v+m) - v;
for(int i = 0, cnt; i<m; ++i){
for(cnt = 0; v[i] > 1 && n > 1 && !(n % v[i]); ++cnt, n /= v[i]){}
if(cnt) printf("%d^%d ", v[i], cnt);
}
}