【PTA 7-15】素因子分解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Xylon_/article/details/87857142

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

给定某个正整数 N,求其素因子分解结果,即给出其因式分解表达式 N=p​1​​​k​1​​​​⋅p​2​​​k​2​​​​⋯p​m​​​k​m​​​​。

输入格式:

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

输出格式:

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

输入样例:

1323

输出样例:

1323=3^3*7^2

代码:

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
#define mem(a,b) memset(a,b,sizeof(a))
 
int main()
{
	ll n,i;
	int flag=0;
	cin>>n;
	cout<<n<<"=";
	if(n==1)
	{
		cout<<"1";
		return 0;
	}
	for(i=2;i<=n;i++)
	{
		int p=0,k=0;
		while(n%i==0)
		{
			n/=i;
			p=i;
			k++;
		}
		if(p)
		{
			if(flag)
				cout<<"*";
			cout<<p;
			flag=1;
		}
		if(k>1)
			cout<<"^"<<k;
	}
	cout<<endl;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/Xylon_/article/details/87857142
PTA