Submission
Status:
PPPxxxPPxx
Score: 50
User: tankunkid
Problemset: แยกตัวประกอบ
Language: c
Time: 0.058 second
Submitted On: 2024-09-25 15:07:19
#include <stdio.h>
int main() {
long long N;
scanf("%d", &N);
int arr[N];
int brr[N];
int order = 0;
if (N >= 2 && N <= 2000000000) {
if (N % 2 == 0) {
arr[order] = 2;
brr[order] = 0;
while (N % 2 == 0) {
N = N / 2;
brr[order]++;
}
order++;
}
for (long long i = 3; i*i <= N; i+=2) {
if (N % i == 0) {
arr[order] = i;
brr[order] = 0;
while (N % i == 0) {
N = N/i;
brr[order]++;
}
order++;
}
}
if (N > 2) {
arr[order] = N;
brr[order] = 1;
order++;
}
}
for (int i = 0; i < order; i++){
printf("%d^%d ", arr[i], brr[i]);
}
}