LightOJ
来源:互联网 发布:java开发微信的步骤 编辑:程序博客网 时间:2024/05/21 06:40
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 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).
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
2
6
4
Case 1: 1
Case 2: 1
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, ...
数据太大会超限,C/C++中 bool类型占用一个字节,int类型占用4个字节,在素数打表中采用bool类型可以节约不少内存。
把筛得的素数存起来,后来找时更方便
#include <iostream>#include <cstdio>#include <cstring>#include <vector>using namespace std;bool a[10000005];int p[1000000];void prime(){ memset(a,false,sizeof(a)); memset(p,0,sizeof(p)); int i,j; int k=0; for(i=2;i<10000000;i++) { if(!a[i]) { p[k++]=i; for(j=2*i;j<10000000;j+=i) a[j]=true; } }}int main(){ int t,n; prime(); scanf("%d",&t); int r=1; while(t--) { int sum=0; scanf("%d",&n); for(int i=0;p[i]<=n/2;i++) { if(!a[n-p[i]]) sum++; } printf("Case %d: %d\n",r++,sum); }}
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- [LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- HDOJ 2700 Parity(水)
- spring教程--事务管理
- STM32入门学习之_SysTick_Config()函数的SysTick时钟配置
- Esp8266学习之旅⑦ 了解softAP热点配网模式原理,仿“机智云”定义自己的热点配网模式协议。(带Demo)
- 使用GreenDao添加数据-查询数据
- LightOJ
- 【二分+最大流】BZOJ1305 [CQOI2009]dance跳舞
- MVP+banner+banner点击事件+webview
- 机器学习-KMeans聚类 K值以及初始类簇中心点的选取
- ros 安装及基础学习
- linux中的防火墙管理之firewall
- Lct
- 访问者模式(Visitor)-----基于JAVA语言
- HDU 3374