40分求助!!!
查看原帖
40分求助!!!
715354
LCP99楼主2025/6/22 21:18

代码如下:

#include<bits/stdc++.h>
using namespace std;
long long cinn[100],a[100],ans=0;
int main()
{
	int t;
	cin>>t;
	for(int i=1;i<=t;i++)
		cin>>cinn[i];
	for(int i=1;i<=30;i++)
		a[i]=pow(2,i-1);
	for(int i=1;i<=t;i++)
	{
		ans=0;
		int k=1;
		while(1){
			bool flag=1;
			for(int j=2;j<cinn[i];j++)
				if(cinn[i]%j==0){
					flag=0;
					break;
				}
			if(flag){
				cinn[i]-=cinn[i];
				ans++;
				break;
			}else{
				cinn[i]-=a[k];
				ans++;
			}
			k++;
		}
		if(cinn[i]!=0){
			cout<<-1;
			continue;
		}
		cout<<ans<<endl;
	}
	return 0;
}

后面得6个数据点全挖了,应该是“-1”特判的问题,代码逻辑可能比较乱,烦劳各位大神提点建议。

2025/6/22 21:18
加载中...