
题目链接: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;
}