PAT 2-07. 素因子分解(20)

题目链接:http://www.patest.cn/contests/ds/2-08

题目意思:long int范围内的正整数N进行素因子分解。

直接整除即可,不需要素数筛选

代码如下:

#include<iostream>
using namespace std;

int main()
{
	long int n;
	cin>>n;
	if(n==1)
	{
		cout<<"1=1"<<endl;
	}
	else
	{
		cout<<n<<"=";
		for(int i=2;i<=n;i++)//从2一直到n 
		{
			int k=0;
			if(n%i==0)
			{
				do
				{
					n/=i;
					k++;
				}while(n%i==0);
				if(k>1)
				{
					cout<<i<<"^"<<k;
				}
				else
				{
					cout<<i;
				}
				if(n/i>0)
				{
					cout<<"*";
				}
			}
		}
	}
	return 0;
}

  

posted @ 2015-03-10 19:26  职场亮哥  阅读(234)  评论(0编辑  收藏  举报