#41369: C++解法


ss112030023@gapp.nthu.edu.tw (林芃愷)

學校 : 不指定學校
編號 : 275931
來源 : [49.159.216.244]
最後登入時間 :
2024-07-25 14:04:07
a010. 因數分解 | From: [49.159.216.244] | 發表日期 : 2024-07-21 07:18

#include <iostream>
using namespace std;
 
long long factors[10000];
int power[10000];
int cnt = 0;
int main()
{
    long long n;
    cin >> n;
    int pow = 0;
    if(n % 2 == 0) {
    factors[cnt] = 2;
    while(n % 2 == 0) {
            n /= 2;
            pow++;
}
        power[cnt++] = pow;
    }
    for(long long i=3; i*i<=n; i+=2) {
        pow = 0;
        if(n % i == 0) {
            factors[cnt] = i;
            while(n % i == 0) {
                n /= i;
                pow++;
            }
            power[cnt++] = pow;
        }
    }
    if(n > 2) {
        factors[cnt] = n;
        power[cnt++] = 1;
    }
    for(int i=0; i<(cnt-1); i++) {
        cout << factors[i];
        if(power[i] > 1) {
            cout << "^" << power[i];
        }
        cout <<" " <<"*"<<" ";
    }
    cout << factors[cnt-1];
    if(power[cnt-1] > 1) {
        cout << "^" << power[cnt-1];
    }
    cout << endl;
}
 
ZeroJudge Forum