博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LightOJ - 1259 Goldbach`s Conjecture 素数筛
阅读量:3904 次
发布时间:2019-05-23

本文共 1282 字,大约阅读时间需要 4 分钟。

题目:

Goldbach's conjecture is one of the oldest unsolved problems in number theory and in all of mathematics. It states:

Every even integer, greater than 2, can be expressed as the sum of two primes [1].

Now your task is to check whether this conjecture holds for integers up to 107.

Input

Input starts with an integer T (≤ 300), denoting the number of test cases.

Each case starts with a line containing an integer n (4 ≤ n ≤ 107, n is even).

Output

For each case, print the case number and the number of ways you can express n as sum of two primes. To be more specific, we want to find the number of (a, b) where

1)      Both a and b are prime

2)      a + b = n

3)      a ≤ b

Sample Input

2

6

4

Sample Output

Case 1: 1

Case 2: 1

Note

1.      An integer is said to be prime, if it is divisible by exactly two different integers. First few primes are 2, 3, 5, 7, 11, 13, ...

思路:

先用素数筛求出1e7中的素数,然后枚举素数。

注意,开判定是否为素数的数组一定要设置成bool类型,不然会报MLE。

代码如下:

#include 
#include
#include
#include
using namespace std;typedef long long ll;const ll maxn=1e7+5;int t,n;bool is[maxn];int cnt=0;int pri[664590];void judge (){ for (int i=2;i
n/2) break; if(is[n-pri[i]]==false) num++; } printf("Case %d: %d\n",Case,num); } return 0;}

 

转载地址:http://akoen.baihongyu.com/

你可能感兴趣的文章
Bitmap优化
查看>>
Android: Bitmap与DrawAble与byte[]与InputStream之间的转换
查看>>
java-设计模式-创建模式-建造者模式builder
查看>>
java-设计模式-创建模式-工厂模式factory
查看>>
java-设计模式-创建模式-观察者模式observer
查看>>
原子性、可见性以及有序性
查看>>
Session的生命周期
查看>>
死锁实例
查看>>
生产者消费者实例
查看>>
java中数组定义String a[]和String[] a有什么区别?
查看>>
Java权限访问修饰符 亲测总结
查看>>
Jsp与servlet的区别
查看>>
struct spring hibernate辨析
查看>>
Spring和SpringMVC的区别
查看>>
java程序与操作系统API的关系
查看>>
用手机连接电脑的360免费WiFi(电脑自带的无线网卡启动AP模式)
查看>>
一个外网IP如何能映射两台机子的相同端口(NAT)
查看>>
尾递归笔记
查看>>
剑指Offer
查看>>
五大常用算法&实例列举
查看>>