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

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

给定某个正整数 N,求其素因子分解结果,即给出其因式分解表达式 N=p1k1p2k2pmkm

输入格式:

输入long int范围内的正整数 N。

输出格式:

按给定格式输出N的素因式分解表达式,即 N=p1^k1*p2^k2*…*pm^km,其中pi为素因子并要求由小到大输出,指数kipi的个数;当ki为1即因子pi只有一个时不输出ki

输入样例:

1323

输出样例:

1323=3^3*7^2

#include<iostream>
using namespace std;
int main(){	
long n;
	int flag=0;
	cin>>n;
	cout<<n<<"=";
	if(n>1){
		for(long i=2;i<=n;i++){//考虑质数 
		int p=0,k=0;
		while(n%i==0){
			n/=i;
			p=i;
			k++;
		}
		if(p!=0){
			if(flag==1)
			cout<<"*";			
			cout<<p;
			flag=1;
		}
		if(k>1){
			cout<<"^"<<k;
		}
	}
	} 
	else
	cout<<1;
cout<<endl;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_39427510/article/details/80316149