题解

  • 这道题目的目标是找出一个数的素因子分解表达式.

    • 我们首先需要确定一个数是否是质数,然后对给定的数进行分解。
    • 这里,我们采用的方法是从2开始枚举质因子.
    • 如果可以整除,我们就知道这是一个素因子,然后我们不断地除以这个因子,直到无法整除为止。
    • 然后试除下一个数字。
    • 重复这个过程,直到这个数被完全分解为止。
  • 如何保证i是质数?

    • i 是合数一定能分解成更小的质数,但是更小的质数已经被分离,故i如果能被整除就一定是质数。
#include<bits/stdc++.h>
using namespace std;
typedef long long shi_nian_oi_yi_chang_kong_bu_kai_long_long_jian_zu_zong;
shi_nian_oi_yi_chang_kong_bu_kai_long_long_jian_zu_zong n;

int main(){
    cin>>n;
    for(int i=2;i*i<=n;i++){
        if(n%i==0){
            int cnt=0;
            while(n%i==0){
                cnt++;
                n/=i;
            }
            cout<<i;
            if(cnt>1)cout<<'^'<<cnt;
            if(n!=1) cout<<" * ";
        }
    }
    if(n!=1)cout<<n;
    return 0;
}

idk