MnZn 20分求助,求hack
查看原帖
MnZn 20分求助,求hack
232507
OK咯莫名其妙楼主2021/11/15 21:08
#include<bits/stdc++.h>
using namespace std;
int cnt;
int tmp[150];
int main()
{
	int n,k;
   cin>>n>>k;
   int n_sqrt = sqrt(n);
   for(int i=2;i<=n_sqrt;i++)
   {
       if(n%i==0)//
       {
           while(n%i==0)
           {
                n/=i;
                tmp[++cnt]=i;
           }
       }
   }
   if(n!=1){
   	tmp[1]=1;
   	tmp[2]=n;
   	cnt=2;
   }
   int sum=0;
   for(int i=1;i<=cnt;i++)
   		sum+=tmp[i];
   	if(sum>k){
   		cout<<-1<<endl;
   		return 0;
	}
	if(sum==k){
		//cout<<1<<endl;
	//	cout<<cnt<<endl;
		for(int i=1;i<=cnt;i++)
			cout<<tmp[i]<<" ";
		return 0;
	}
	if(sum<k){
		//cout<<cnt<<endl;
		//cout<<sum<<endl;
		//cout<<k-sum+1<<endl;
		cout<<cnt+(k-sum+1)-1<<endl;
		for(int i=1;i<=cnt;i++)
			cout<<tmp[i]<<" ";
		for(int i=sum+1;i<=k;i++)
			cout<<1<<" ";
	}
    return 0;
}
2021/11/15 21:08
加载中...