求大佬解答
查看原帖
求大佬解答
749325
Sincerin楼主2023/5/11 21:48

感觉这两个都没什么问题啊,为毛改成直接在线输出就过了?有没有大佬帮忙看看的QwQ。

AC

#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;
}

WA

#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;
}
2023/5/11 21:48
加载中...