求助P1304
  • 板块题目总版
  • 楼主zsc006
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/7/21 19:36
  • 上次更新2023/11/3 08:22:32
查看原帖
求助P1304
695655
zsc006楼主2023/7/21 19:36
#include<bits/stdc++.h>
using namespace std;
int n;
bool mei(int v, int x){
	bool flag1=true, flag2=true;
	for(int q=2; q*q<=v;q++){
		if(v==2) break;
		if(v%q==0){
			flag1=false;
		}
	}
	for(int r=2; r*r<=x;r++){
		if(x==2) break;
		if(x%r==0){
			flag2=false;
		}
	}
	if(flag1==true&&flag2==true) return true;
	return false;
}
int gdbh(int n){
	int j1,j2;
	for(j1=2;j1<=n/2;j1++){
		for(j2=n-2;j2>=j1;j2--){
			if(mei(j1,j2)==true&&j1+j2==n){
				return j1;
			}
		}
	}
}
int main(){
	cin >> n;
	int i;
	for(i = 4; i <= n; i+=2){
		int k = gdbh(i);
		int y =i-k;
		printf("%d=%d+%d\n", i, k, y);
	} 
	return 0;
}

以上为代码,由于初学,代码写的有些冗长,n<=10000,此代码卡在样例二n=10000,TLE

求助,能用此代码的思想帮我改一改吗?

2023/7/21 19:36
加载中...