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 ...
随机推荐
- Windows的ODBC配置指南: MySQL, PostgreSQL, DB2, Oracle
MySQL- 官网: https://dev.mysql.com/downloads/connector/odbc/- 安装: * msi格式, 直接安装即可 * zip格式, 解压缩, 命令行(管理 ...
- Centos 添加 sudo 用户
说明以下的 <username>字样 是 用户名 新增用户 # 终端命令 useradd <username> 举例: useradd <username> -s ...
- linux安装MySQL-5.6.22-1.el6.i686.rpm-bundle.tar
1.首先搜索系统有没有安装过mysql,使用命令 rpm -qa|grep mysql 有的话先卸载 rpm -e --nodeps + mysql应用名字\ 2.在/usr/local下创建mys ...
- thinkphp 快速缓存
如果你的存储数据没有有效期的需求,那么系统还提供了一个快速缓存方法F可以用来更快的操作. 大理石平台厂家 F方法可以支持不同的存储类型,如果是文件类型的话,默认保存在DATA_PATH目录下面. 快速 ...
- docker快速安装elasticsearch
一.选择版本,拉取镜像 docker pull elasticsearch:5.6.9 #不选择版本就是最新的 二.运行设置容器 # -d 表示在后台运行 docker run -d -p 9200: ...
- JS-copy到剪贴板
因为 clipboard.js 兼容性受限
- Bootstrap3的响应式缩略图幻灯轮播效果设计
在线演示1 本地下载 HTML <div class="container"> <div class="col-md-12"> &l ...
- 【6折抢】戴尔i7新品Latitude高性能商用本
致敬拼搏成长中的企业 戴尔5月有钜惠! 买1赠1送同款,单台价格2500元 这波来自戴尔官网的致敬很走心 满足初级办公和高性能运算多重需求 限时折扣火热开抢! 新品 latitude 6折抢! 戴尔 ...
- tarjan模板 强联通分量+割点+割边
// https://www.cnblogs.com/stxy-ferryman/p/7779347.html ; struct EDGE { int to, nt; }e[N*N]; int hea ...
- Redis连不上的一些细节配置
远程链接redis连不上,在确保防火墙设置正确的情况下 把redis.conf中的 bind 127.0.0.1注释 另外把protected-mode yes 改为protected-mode no