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);
	}
}