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