筛选素数打表然后直接查表过了,嚯嚯嚯

P1579 哥德巴赫猜想(升级版)

shijunfeng00 @ 2017-03-02 17:59:53

#include<iostream>
#include<cmath>
int a[30000]={0},b[30000]={0};
using namespace std;
int main()
{
    int n,m=0;
    cin>>n;
    for(int i=2;i<sqrt(n);i++)
    for(int j=2;i*j<=n;j++)
    a[i*j]=1;
    for(int i=2;i<n;i++)
    if(!a[i])b[m++]=i;           //m为不大于n的质数个数
    for(int i=0;i<m;i++)
    for(int j=0;j<m;j++)
    for(int k=0;k<m;k++)
    if(b[i]+b[j]+b[k]==n)
    {
        printf("%d %d %d",b[i],b[j],b[k]);
        return 0;
    } 
}

by wx33 @ 2017-03-03 20:39:31

你这个筛法实在是太naive了,就不能写个线性筛吗?


by Tyrone @ 2017-03-23 22:18:07

bu neng


by 我爱编程 @ 2017-04-05 21:23:07

你可以去发题解呀


by tuliwei @ 2017-04-20 12:53:39


|