分解質因數

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n;
    scanf("%d", &n);
    int flag = 1;
    for (int i = 2; i * i <= n; i++) {
        int cnt = 0;
        if (n % i == 0) {
            while (n % i == 0) {
                n /= i;
                cnt++;
            }
            if (flag) {
                flag = 0;
            } else {
                printf("*");
            }
            if (cnt == 1) {
                printf("%d", i);
            }
            else if (cnt > 1) {
                printf("%d^%d", i, cnt);
            }
        }
    }
    if (n > 1) {
        printf("*%d\n", n);
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章