Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: Apimuk

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

Language: cpp

Time: 0.123 second

Submitted On: 2025-10-25 22:59:45

#include<bits/stdc++.h>
using namespace std;
bool isprime(int n){
    if (n== 2 || n==3)return true;
    if(n<=1) return false;
    if(n%2==0 || n%3==0) return false;
    if(n==5) return true;
    for(int i = 6 ;i*i <= n ; i++){
        if(n%i == 0) return false;
    }
    return true;
}


int main(){
    map<int , int > val;
    int n;
    cin >> n;
    while(true){
        if(n==1){
            break;
        }
        for(int i = 2 ; i<= n ; i++){
            if(n%i == 0){
                if(isprime(i)){
                    val[i]++;
                }
                n /=i;
                break;
            }
        }
    }
    for(auto v : val){
        cout<< v.first << '^' << v.second << ' ' ;
    }
}