【HDU】 1397 Goldbach's Conjecture

原创 2016年05月30日 20:33:04

Goldbach’s Conjecture


题目链接


题目大意

    给你一个偶数,让你去计算有多少组不同的质数相加等于这个偶数。
    比如10=5+5、10=3+7,所以10的答案是2.


题解

    直接打表暴力了…因为数据很小嘛


代码

#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstdlib>

using namespace std;

int n,tab[33000],h;
int vis[33000];

void settab(int high)
{
    h=0;
    memset(tab,0,sizeof(tab));
    memset(vis,0,sizeof(vis));
    for (int i=2;i<=high;i++) if (!vis[i])
    {
        int j=i+i;
        tab[h++]=i;
        vis[i]=2;
        while (j<=high)
        {
            vis[j]=1;
            j+=i;
        }
    }
}

int ser(int l,int r,int k)
{
    int mid=(l+r)>>1,ll=l,rr=r;
    while (ll!=rr)
    {
        if (k<=tab[mid]) rr=mid;
        else ll=mid+1;
        mid=(ll+rr)>>1;
    }
    return ll;
}

int main()
{
    settab(32768);
    while(scanf("%d",&n),n!=0)
    {
        int p=ser(0,h-1,n),ans=0;
        for (int i=0;i<=p;i++)
        {
            if (tab[i]>n/2) break;
            if (vis[n-tab[i]]==2) ans++;
        }
        printf("%d\n",ans);
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

Goldbach's Conjecture(筛选法求素数)

解题思路: 筛选法求素数模板题,
  • userluoxuan
  • userluoxuan
  • 2014年08月08日 20:34
  • 347

Goldbach`s Conjecture 【素数线性筛法】

Goldbach`s Conjecture Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu S...
  • u014427196
  • u014427196
  • 2015年03月09日 23:14
  • 371

POJ Goldbach's Conjecture(素数筛~欧拉筛法)

Goldbach's Conjecture Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 39018   Acc...
  • u014361775
  • u014361775
  • 2015年01月26日 19:01
  • 535

LightOJ 1259 - Goldbach`s Conjecture (分解偶数为两个素数之和)

1259 - Goldbach`s Conjecture     PDF (English) Statistics Forum Time Li...
  • Rain722
  • Rain722
  • 2017年03月21日 16:11
  • 193

POJ 2262 Goldbach's Conjecture (求解素数的一般筛和线性筛)

POJ 2262 Goldbach's Conjecture (求解素数的一般筛和线性筛)
  • Tc_To_Top
  • Tc_To_Top
  • 2015年08月03日 23:05
  • 736

hdu5774(2016多校第四场,水题)

Where Amazing Happens Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/O...
  • martinue
  • martinue
  • 2016年07月29日 10:34
  • 431

HDOJ 题目2643 Rank(斯特林第二类数)

Rank Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub...
  • yu_ch_sh
  • yu_ch_sh
  • 2015年11月04日 17:15
  • 438

HDU 2204 Eddy's爱好(数论)

题目:(中文题) 问题是这样的:给你一个正整数N,确定在1到N之间有多少个可以表示成M^K(K>1)的数。 本题有多组测试数据,每组包含一个整数N,1 对于每组输入,请输出在在1到N之间...
  • u010811359
  • u010811359
  • 2014年12月13日 23:54
  • 285

HDU——1397Goldbach's Conjecture(二分查找+素数打表)

Goldbach's Conjecture Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/O...
  • a88770202
  • a88770202
  • 2016年02月15日 21:07
  • 220

hdu 1145: 不容易系列2

Description大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了! 做好“一件”事情尚且不易,若想永远成功而总从不失败,那更是难上加难了,就像花钱总是比挣钱容易的道理一样。 ...
  • wb129945130
  • wb129945130
  • 2015年08月22日 12:44
  • 471
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【HDU】 1397 Goldbach's Conjecture
举报原因:
原因补充:

(最多只允许输入30个字)