第四章 递归算法 1210:因子分解

1210:因子分解

时间限制: 1000 ms 内存限制: 65536 KB
提交数: 4267 通过数: 2641
【题目描述】
输入一个数,输出其素因子分解表达式。

【输入】
输入一个整数 n (2≤n<100)。

【输出】
输出该整数的因子分解表达式。

表达式中各个素数从小到大排列。

如果该整数可以分解出因子a的b次方,当b大于1时,写做 a^b ;当b等于1时,则直接写成a。

【输入样例】
60
【输出样例】
2^235


思路:搜索 递推 来做

#include<iostream>
#include<cstdio>
using namespace std;
int n,a[10001],b[10001];
void search(int x,int y)
{
	if(x==0||y>x) return ;
	while(x%y==0) x/=y,a[y]++;//能整除继续拆分
	search(x,y+1);
	
}
int main(){
	cin>>n;
	search(n,2);
	bool B=0;
	for(int i=1;i<=n;i++)
	{
		if(B&&a[i]) cout<<"*";
		if(a[i]) B=1;
		if(a[i]==1)
		cout<<i;
		else if(a[i]>1)
		printf("%d^%d",i,a[i]);
	}
return 0;	
}
发布了108 篇原创文章 · 获赞 2 · 访问量 2064

猜你喜欢

转载自blog.csdn.net/zqhf123/article/details/104424223