#46295: 更好的解法


ytconch@gmail.com (神奇的海螺)

學校 : 國立清水高級中學
編號 : 307834
來源 : [60.198.74.127]
最後登入時間 :
2025-09-13 20:14:17

 

 

#include <iostream>
using namespace std;
int prime(int v){
    if(v == 2 || v == 3 || v==5)return true;
    else if(v%2 == 0 || v % 3 == 0)return false;
    else{ 
        for(int i = 5 ; i*i < v ; i+= 6)if(v%i==0||v%(i+2)==0)return false;
    }
    return true;
}
int main(){
    int n , count{};
    cin >> n;
    for(int ia = 2 ; ia <= n; ++ia){
        int check{};
        while(n%ia==0&&prime(ia)){
            n /= ia;
            ++check;
        }
        if(check){
            cout << (count?"* ":"") << ia;
            if(check>1)cout << "^" << check;
            cout << " ";
            ++count;
        }
    }