天天看点

浙大PAT1059 Prime Factors

//常规题,没有什么多的技巧,关键不要漏掉1等特殊情况

#include<iostream>

#include<fstream>

#include<algorithm>

#include<vector>

#include<stack>

#include<queue>

#include<math.h>

#include<string>

using namespace std;

//#define fin cin  

int main()  

{  

long N;

cin>>N;

cout<<N<<"=";

vector<int> data;

long temp=2;

if(N==1)

{

cout<<N;

return 0;

}

while(N!=1)

{

while(N%temp==0)

{

data.push_back(temp);

N=N/temp;

}

while(1)

{

temp++;

bool found=true;

for(int i=2;i<temp;i++)

{

if(temp%i==0)

{

found==false;

break;

}

}

if(found)

break;

}

}

int i=0;

int num=0;

int temp2=0;

int cishu=0;

while(i<data.size())

{

temp2=data[i];

num=1;

i++;

while(i<data.size()&&data[i]==temp2)

{

num++;

i++;

}

if(cishu==0)

{

if(num==1)

cout<<temp2;

else

cout<<temp2<<"^"<<num;

}

else

{

if(num==1)

cout<<"*"<<temp2;

else

cout<<"*"<<temp2<<"^"<<num;

}

cishu=1;

}

    system("PAUSE");  

    return 0;  

}