2-7 素因子分解 (20 分)
阿新 • • 發佈:2021-02-11
**
2-7 素因子分解 (20 分)
**
給定某個正整數 N,求其素因子分解結果,即給出其因式分解表示式
輸入格式:
輸入long int範圍內的正整數 N。
輸出格式:
按給定格式輸出N的素因式分解表示式,即 ,其中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;
}