poj 2262【素数表的应用---判断素数】【哈希】
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 35214 | Accepted: 13493 |
Description
Every even number greater than 4 can be
written as the sum of two odd prime numbers.
For example:
8 = 3 + 5. Both 3 and 5 are odd prime numbers.
20 = 3 + 17 = 7 + 13.
42 = 5 + 37 = 11 + 31 = 13 + 29 = 19 + 23.
Today it is still unproven whether the conjecture is right. (Oh wait, I have the proof of course, but it is too long to write it on the margin of this page.)
Anyway, your task is now to verify Goldbach's conjecture for all even numbers less than a million.
Input
Each test case consists of one even integer n with 6 <= n < 1000000.
Input will be terminated by a value of 0 for n.
Output
Sample Input
8
20
42
0
Sample Output
8 = 3 + 5
20 = 3 + 17
42 = 5 + 37
题目大意:给出一个6-1000000的偶整数n,判断是不是两个素数的和,如果是,按照要求的格式输出这两个素数,如果不是或者是n是奇数,输出“Goldbach's conjecture is wrong.”;输入0时退出程序。
这道题需要用到素数表,不过不用打印,只需要标记下谁是素数即可,所以只需要将打印素数表的代码稍微一修改就可以了。
#include<iostream>
#include<math.h>
using namespace std;
int prime[]={};
int top=;
void print_prime()
{
int i;
double x=sqrt(1001000.0);
int n=int(x);
//cout<<sqrt(MAXN)<<endl;
//cout<<n<<endl;
for( i=; i<n; i++)
{
if(prime[i]==)
{
for(int j = i*i; j<; j+=i)
prime[j]=;
// prime[++top]=i;
}
}
/*for(i=n; i<MAXN; i++)
if(prime[i]==0)
prime[++top]=i;*/
}
int main()
{
print_prime();
int n;
while()
{
cin>>n;
if(n==)break;
if(n%==)
{
cout<<"Goldbach's conjecture is wrong."<<endl;
continue;
}
bool flag=true;
int i;
for(i=;i<=n/;i=i+)
{
if(prime[i]==&&prime[n-i]==)
{
cout<<n<<" = "<<i<<" + "<<n-i<<endl;
flag=false;
break;
}
}
if(flag==true)cout<<"Goldbach's conjecture is wrong."<<endl;
}
return ;
}
poj 2262【素数表的应用---判断素数】【哈希】的更多相关文章
- hdu 5407 CRB and Candies(组合数+最小公倍数+素数表+逆元)2015 Multi-University Training Contest 10
题意: 输入n,求c(n,0)到c(n,n)的所有组合数的最小公倍数. 输入: 首行输入整数t,表示共有t组测试样例. 每组测试样例包含一个正整数n(1<=n<=1e6). 输出: 输出结 ...
- POJ 2262 Goldbach's Conjecture(素数相关)
POJ 2262 Goldbach's Conjecture(素数相关) http://poj.org/problem?id=2262 题意: 给你一个[6,1000000]范围内的偶数,要你将它表示 ...
- LightOJ-1259-Goldbach`s Conjecture-素数打表+判断素数对数
Goldbach's conjecture is one of the oldest unsolved problems in number theory and in all of mathemat ...
- <编程>比较两种素数表生成算法+计算程序运行时间+通过CMD重定向测试程序
最近学习加密算法,需要生成素数表,一开始使用简单的循环,从2开始判断.代码如下: #include<iostream> #include<cstdio> #include< ...
- PAT Advanced 1059 Prime Factors (25) [素数表的建⽴]
题目 Given any positive integer N, you are supposed to find all of its prime factors, and write them i ...
- 快速判断素数 --Rabin-Miller算法
以前我在判断素数上一直只会 sqrt(n) 复杂度的方法和所谓的试除法(预处理出sqrt(n)以内的素数,再用它们来除). (当然筛选法对于判断一个数是否是素数复杂度太高) 现在我发现其实还有一种方法 ...
- 算法改进 | java语言中判断素数
参考文章:http://blog.csdn.net/kp_liu/article/details/37569507 http://blog.csdn.net/huang_miao_xin/articl ...
- 2java判断素数
package com.test; import java.math.*;import java.util.Scanner; public class test222 { /** * @param a ...
- filter运行出现 <filter object at 0x000001B68F052828> 判断素数
刚接触filter时 运行总是出现<filter object at 0x000001B68F052828> 得不到想要的数据 后来发现是因为filter的结果是一个数组 需要 lis ...
随机推荐
- BSON 1.0版本规范(翻译)
BSON 1.0版本规范 本文翻译自 http://bsonspec.org/spec.html BSON是用于存储零个或多个键/值对为一个单一的实体的一个二进制格式.我们称这个实体为文档(Docum ...
- AFNetworking 2.5.0版本的使用
http://www.mamicode.com/info-detail-477899.html AFNetworking 2.5.0版本的使用 http://afnetworking.com/ htt ...
- JAVA调用动态链接库DLL之JNative学习
package com.ehfscliax; import java.io.UnsupportedEncodingException;import java.net.URLEncoder;import ...
- 用extern定义全局变量
1.extern的作用 extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b); 则告 ...
- linux下打包文件或文件夹
转自: 在linux下如何将文件夹打包 http://blog.csdn.net/cynhafa/article/details/7303338 linux zi ...
- google API 点连线
这个是模拟的数据,用于测试,为了方便学习 弹出框信息都是固定的,以及操作都不是写的循环,实际开发用 setInterval 或者for 以减少冗余. <!DOCTYPE html> < ...
- nginx服务器绑定域名和设置根目录的方法
nginx服务器绑定域名以及设置根目录非常方便,首先进入nginx安装目录,然后执行 vim conf/nginx.conf 打开nginx的配置文件,找到 server { ..... ..... ...
- reportng的使用
1.首先安装testng 2.下载reportng jar包 http://pan.baidu.com/s/1i3KdlQH 3.添加到project build path 注意:需要同时引入goog ...
- 针对Xcode的警告忽略消除处理
一.问题描述 html代码如下 <html> <head> <meta charset="utf-8"/> <title>我的网页& ...
- filter 简介
概述 filter() 方法使用指定的函数测试所有元素,并创建一个包含所有通过测试的元素的新数组. 语法 var new_arrary = arr.filter(callback[, thisArg] ...