一道很简单的ACM题,为什么总是Time Limit Exceed?希望有更有效的算法。急急急!!100分在线等~

2025-02-26 22:12:06
推荐回答(2个)
回答1:

至少你的程序有问题
if(j) cout<<"*";
应该为
if(j){ cout<<"*";j=0}

回答2:

#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< if(i>1)
cout<<"^"< }
m++;
}
if(k > 1)
{
if(j) cout<<"*";
cout << k;
}
cout< }
return 0;
}