**
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;
}