1 条题解

  • 0
    @ 2024-6-15 17:12:34
    #include<vector>
    #define endl '\n'
    using namespace std;
    
    void print(int x,const vector<int> &primes)
    {
    	for(int i=0;i<=primes.size()-1;i++)
    	for(int j=0;j<=primes.size()-1;j++)
    	if (primes[i]+primes[j]==x)
    	{
    		cout<<x<<"="<<primes[i]<<"+"<<primes[j]<<endl;
    		return;
    	}
    }
    
    int main()
    {
    	ios::sync_with_stdio(0);
    	cin.tie(0);
    	cout.tie(0);
    	int n; //范围 4~n
    	cin >> n;
    	vector<bool> isPrime(n + 1, true);//标记质数 
    	isPrime[0]=false,isPrime[1]=false;
    	vector<int> primes; //保存质数
    	for(int i=0;i<=n;i++)//获取范围内所有质数
    	{
    		if (isPrime[i])//质数筛
    		{
    			primes.push_back(i);
    			for(int j=i*i;j<=n;j+=i)
    			isPrime[j]=false;
    		}
    	}
    
    	for(int i=4;i<=n;i+=2)
    		print(i,primes);
    	
    	//cout<<endl;
    	return 0;
    }
    
    • 1

    信息

    ID
    110
    时间
    1000ms
    内存
    256MiB
    难度
    1
    标签
    递交数
    1115
    已通过
    8
    上传者