求助!两个TLE!!!
查看原帖
求助!两个TLE!!!
467431
ScrBaiYang楼主2022/7/16 13:56
#include<bits/stdc++.h>

using namespace std;

long long n,m,k[5004];

bool zhishu(long long n)
{
	if(n==1)
	{
		return false;
	}
	for(int i=2;i<=sqrt(n);i++)
	{
		if(n%i==0)
		{
			return false;
		}
	}
	return true;
}

int pn(long long n)
{
	long long v[n],o=0;
	for(int i=0;i<n;i++)
	{
		v[i]=0;
	}
	for(int i=1;i<=n;i++)
	{
		if(zhishu(i)==true)
		{
			v[o]=i;
			o++;
		}
	}
	for(int i=0;i<o-1;i++)
	{
		for(int j=i;j<o;j++)
		{
			if(v[i]+v[j]==n)
			{
				if(v[i]!=1 && v[j]!=1)
				{
					return v[i];
				}
			}
		}
	}
}

int main()
{
	cin>>n;
	m=n/2;
	m--;
	k[0]=4;
	for(int i=1;i<m;i++)
	{
		k[i]=k[i-1]+2;
	}
	for(int i=0;i<m;i++)
	{
		cout<<k[i]<<"="<<pn(k[i])<<"+"<<k[i]-pn(k[i])<<endl;
	}
	return 0;
}
2022/7/16 13:56
加载中...