70分求调,玄关(^__^)
查看原帖
70分求调,玄关(^__^)
1201913
Shawn16楼主2024/9/26 19:59

使用了递归

测试点 WA了 2,4,7

#include<bits/stdc++.h>
using namespace std;

int x,y,f[1005][2],i=0;

bool pd(int n){
	if(n<=1) return 0;
	else{
		for(int i=2;i*i<=n;++i){
			if(n%i==0) return 0;
		}
		return 1;
	}
}

void dg(int n,int x,int y){
	if(x>=y){
		return;
	}
	if(pd(x)&&pd(y)){
		f[i][1]=x;
		f[i][2]=y;
		++i;
		dg(n,x+1,y-1);
	}
	else{
		dg(n,x+1,y-1);
	}
}

int main()
{
	int n;
	cin>>n;
	x=2,y=n-2;
	dg(n,x,y);
	int mn=2e9,id=-1;
	for(int j=0;j<i;++j){
		if(f[j][2]-f[j][1]<mn){
			id=j;
			mn=f[j][2]-f[j][1];
		}
	}
	cout<<f[id][2]*f[id][1];
	
	return 0;
}
2024/9/26 19:59
加载中...