感觉这两个都没什么问题啊,为毛改成直接在线输出就过了?有没有大佬帮忙看看的QwQ。
#include <iostream>
#include <cmath>
#include <cstring>
using namespace std;
int t,cnt,p[105],c[105];
long long N;
inline void divide(long long n)
{
memset(c,0,sizeof(c));
long long m=sqrtl(n);
for(int i=2;i<=m;++i)
{
if(n%i==0)
{
while(n%i==0)
{
n/=i;
cout<<i<<' ';
}
}
}
if(n!=1)
{
cout<<n<<' ';
}
cout<<"\n";
}
int main()
{
cin>>t;
while(t--)
{
cin>>N;
divide(N);
}
return 0;
}
#include <iostream>
#include <cmath>
#include <cstring>
using namespace std;
int t,cnt,p[105],c[105];
long long N;
inline void divide(long long n)
{
memset(c,0,sizeof(c));
long long m=sqrtl(n);
int cnt=0;
for(int i=2;i<=m;++i)
{
if(n%i==0)
{
p[++cnt]=i;
while(n%i==0)
{
n/=i;
c[cnt]++;
}
}
}
if(n!=1)
{
p[++cnt]=n;
c[cnt]++;
}
for(int i=1;i<=cnt;++i)
{
while(c[i]--) cout<<p[i]<<' ';
}
cout<<"\n";
}
int main()
{
cin>>t;
while(t--)
{
cin>>N;
divide(N);
}
return 0;
}