质因数分解式

题目描述

每个正整数都可以被分解为 n 个质因数的乘积,下面输入正整数 n,请你求出 n 的质因数分解式,如果有重复的质因数则将 * 号改为 ^ 号, * 号左右加空格。

输入格式

一个正整数 n

输出格式

n 的质因数分解式

样例输入#1

20

样例输出#1

2^2 * 5

样例输入#2

6

样例输出#2

2 * 3

样例输入#3

23

样例输出#3

23

参考代码

#include 
#include 
#define ll long long
using namespace std;

bool zs(int x)
{
	if(x == 1)
		return false;
	
	for(int i = 2; i * i <= x; i++)
	{
		if(x % i == 0)
			return false;
	}
	
	return true;
}

int main()
{
	int n, t;
	cin>>n;
	bool cf = true;
	for(int i = 2; i <= n; i++)
	{
		bool first = false;
		bool in = false;
		while (n % i == 0 && zs(i))
		{
			n /= i;
			if (!first)
			{
				if(n % i != 0 && !cf)
				{
					cout<<"*"<

你可能感兴趣的:(C++,算法,c++)