LightOJ-1259-Goldbach`s Conjecture-素数打表+判断素数对数
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
- 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, ...
- 题意:给出n个数,判断每个数由几对素数组成
- 注意:pri开数组的范围
打表标记用bool,不然一直RT
判断素数对数当走到n/2时后面肯定找不到一对了,这个时候可以break了
判断有几对素数:
for(int i=; i<p; i++)
{
if(pri[i]>n/)
break;
if(book[n-pri[i]]==)
ans++;
}
#include<stdio.h>
#include<cmath>
#include<algorithm>
#include<string.h>
typedef long long ll;
using namespace std; //const int N=1e7+20;
bool book[10000001];
int pri[];
int p; void prime()
{
//非素数标记为1
//memset(book,0,sizeof(book));
// memset(pri,0,sizeof(pri));这里自己会清空,不要随便去清空,耗时
book[]=;
book[]=;
p=;
for(int i=; i<=; i++)
{
if(book[i]==)
{
pri[p++]=i;//记录素数元素
for(int j=i*; j<=; j+=i)
book[j]=;
}
}
} int main()
{
prime();
// sort(pri,pri+p);
int t,tt=;
scanf("%d",&t);
int n;
while(t--)
{
scanf("%d",&n);
int ans=;
43 for(int i=0; i<p; i++)
44 {
45 if(pri[i]>n/2)
46 break;
47 if(book[n-pri[i]]==0)
48 ans++;
49 }
printf("Case %d: %d\n",tt++,ans);
}
return ;
}
LightOJ-1259-Goldbach`s Conjecture-素数打表+判断素数对数的更多相关文章
- LightOJ 1259 Goldbach`s Conjecture 素数打表
题目大意:求讲一个整数n分解为两个素数的方案数. 题目思路:素数打表,后遍历 1-n/2,寻找方案数,需要注意的是:C/C++中 bool类型占用一个字节,int类型占用4个字节,在素数打表中采用bo ...
- LightOJ - 1259 - Goldbach`s Conjecture(整数分解定理)
链接: https://vjudge.net/problem/LightOJ-1259 题意: Goldbach's conjecture is one of the oldest unsolved ...
- LightOJ 1259 Goldbach`s Conjecture (哥德巴赫猜想 + 素数筛选法)
http://lightoj.com/volume_showproblem.php?problem=1259 题目大意:给你一个数n,这个数能分成两个素数a.b,n = a + b且a<=b,问 ...
- LightOJ 1259 Goldbach`s Conjecture 水题
不想说了 #include <cstdio> #include <iostream> #include <ctime> #include <vector> ...
- POJ 2262 Goldbach's Conjecture (打表)
题目链接: https://cn.vjudge.net/problem/POJ-2262 题目描述: In 1742, Christian Goldbach, a German amateur mat ...
- Light oj-1259 - Goldbach`s Conjecture
1259 - Goldbach`s Co ...
- LightOJ1259 Goldbach`s Conjecture —— 素数表
题目链接:https://vjudge.net/problem/LightOJ-1259 1259 - Goldbach`s Conjecture PDF (English) Statistic ...
- Goldbach`s Conjecture LightOJ - 1259 (素数打表 哥德巴赫猜想)
题意: 就是哥德巴赫猜想...任意一个偶数 都可以分解成两个(就是一对啦)质数的加和 输入一个偶数求有几对.. 解析: 首先! 素数打表..因为 质数 + 质数 = 偶数 所以 偶数 - 质数 = 质 ...
- Goldbach`s Conjecture(LightOJ - 1259)【简单数论】【筛法】
Goldbach`s Conjecture(LightOJ - 1259)[简单数论][筛法] 标签: 入门讲座题解 数论 题目描述 Goldbach's conjecture is one of t ...
随机推荐
- zmq的send
int zmq_send (void *socket, zmq_msg_t *msg, int flags); 2.2.1 nt zmq_send (void *socket, void * ...
- mysql命令行执行时不输出列名(字段名),直接显示字段对应的数值
执行命令时加个-N参数就可以了 -N, –skip-column-names 比如说:mysql -uroot -p1234546 -N -e “select * from user;”
- quartz的使用(二.基本过程)
1.关于各个要素的创建,SchedulerFactoryBean,CronTriggerFactoryBean及JobDetailFactoryBean全部实现spring中的FactoryBean& ...
- vim 详解
Vim是一个功能强大的全屏幕文本编辑器,是Linux/UNIX上最常用的文本编辑器. 它的作用是建立.编辑.显示文本文件. Vim的几种模式 正常模式: 可以使用快捷键命令,或按:输入命令行. 插入模 ...
- Tomcat 调优的技巧
转载:www.cnblogs.com/wangsen, https://mp.weixin.qq.com/s/WrIsOOyR7o4SwSXMT0Zecg 最近,看到一篇讲述 Tomcat 调优的文章 ...
- 【转载】Visual Studio + VA 常用快捷键
有过几年没怎么做window开发,发现回头再用VS忘记了好多快捷键,好记性真是不如烂笔头. 快捷键习惯设置:Tools->Options->Keyboard:Apply the follo ...
- PHP headers_list() 函数
定义和用法 headers_list() 函数返回已发送的(或待发送的)响应头部的一个列表. 该函数返回包含报头的数组. 语法 headers_list() 提示和注释 提示:如需确定是否已发送报头, ...
- Python self的用法
1)不加self是局部变量,只在这个方法里有效:加self则是实例变量,相当于别的函数定义的变量你实例化出来就可以使用 #coding:utf-8 class Person: def __init__ ...
- 阿里云ecs(phpstudy一件包)
选择语言 保存并连接 Linux硬盘挂载是比较常见的管理操作之一.默认情况下数据盘没有挂载,需要手动挂载到系统中. 具体操作是分三步: 硬盘挂载1)需 ...
- Altium Designer 精心总结(转)
https://blog.csdn.net/qq_29350001/article/details/52199356 设置铺铜间距规则,Electrical-Clearence_Poly设置如下,是铺 ...