1. 程式人生 > 其它 >2-7 素因子分解 (20 分)

2-7 素因子分解 (20 分)

技術標籤:資料結構演算法

**

2-7 素因子分解 (20 分)

**
給定某個正整數 N,求其素因子分解結果,即給出其因式分解表示式 在這裡插入圖片描述
輸入格式:
輸入long int範圍內的正整數 N。

輸出格式:
按給定格式輸出N的素因式分解表示式,即 N=p1k1*p2k2*…*pm^km,其中pi為素因子並要求由小到大輸出,指數ki為pi的個數;當ki為1即因子pi只有一個時不輸出ki。

輸入樣例:

1323

輸出樣例:

1323=3^3*7^2

我的程式碼:

#include <iostream>
using namespace std;
long int n;
int z(int x){
    int flag=
0; if(x==2) return 1; for(int i=2;i<x/2;i++){ if(x%i==0){ flag=1; break; } } if(flag==1){ return 0; } else return 1; } int main(){ int a[100000],b[100000],bl=-1; cin>>n; long int sum=n; int num=2; if
(n==1){ cout<<n<<"="<<n; return 0; } while(n!=1){ while(n%num==0&&z(num)==1){ n/=num; if(b[bl]!=num) b[++bl]=num; a[num]++; }//n是質數且n整除於num num++; } cout<<sum<<"="
; for(int i=0;i<=bl;i++){ cout<<b[i]; if(a[b[i]]!=1){ cout<<"^"<<a[b[i]]; } if(i!=bl){ cout<<"*"; } } return 0; }

在這裡插入圖片描述