至少你的程序有问题
if(j) cout<<"*";
应该为
if(j){ cout<<"*";j=0}
#include
#include
using namespace std;
int main()
{
long long k;
while(cin>>k)
{
int j=0,i;
long m=2;
while(k > 1 && sqrt(k) >= m) //平方优化
{
i=0;
while(k%m==0)
{i++;k/=m;}
if(i)
{
if(j) cout<<"*";
j++;
cout<
cout<<"^"< }
m++;
}
if(k > 1)
{
if(j) cout<<"*";
cout << k;
}
cout<
return 0;
}