杭电 1397 水题

原创 2012年03月22日 00:19:59

    一道很水的题,题目:

Goldbach's Conjecture

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 2805    Accepted Submission(s): 1040


Problem Description
Goldbach's Conjecture: For any even number n greater than or equal to 4, there exists at least one pair of prime numbers p1 and p2 such that n = p1 + p2. 
This conjecture has not been proved nor refused yet. No one is sure whether this conjecture actually holds. However, one can find such a pair of prime numbers, if any, for a given even number. The problem here is to write a program that reports the number of all the pairs of prime numbers satisfying the condition in the conjecture for a given even number.

A sequence of even numbers is given as input. Corresponding to each number, the program should output the number of pairs mentioned above. Notice that we are interested in the number of essentially different pairs and therefore you should not count (p1, p2) and (p2, p1) separately as two different pairs.
 

Input
An integer is given in each input line. You may assume that each integer is even, and is greater than or equal to 4 and less than 2^15. The end of the input is indicated by a number 0.
 

Output
Each output line should contain an integer number. No other characters should appear in the output.
 

Sample Input
6 10 12 0
 

Sample Output
1 2 1
 

ac代码:

#include <iostream>
#include <cstdio>
#include <string.h>
#include <cmath>
using namespace std;
bool prime[40000];
void init(){
	memset(prime,false,sizeof(false));
	for(int i=2;i<=39999;++i){
	  int y=(int)sqrt(i+0.5);
	  bool flag=true;
	  for(int j=2;j<=y;++j){
		  if(i%j==0){
		    flag=false;
			prime[i]=false;
			break;
		  }
	  }
	  if(flag==true)prime[i]=true;
	}
}
int main(){
  int n,num;
  init();
  while(scanf("%d",&n),n){
    num=0;
	for(int i=2;i<=n/2;++i){
	  if(prime[i]&&prime[n-i])
		  num++;
	}
	printf("%d\n",num);
  }
  return 0;
}


杭电1397--素数问题-哥德吧猜想

哥德巴赫猜想的 问题描述 任何偶数哥德巴赫猜想:n大于等于4,存在至少一对素数p1和p2,n = p1+p2。 这个猜想尚未证明也不拒绝。没人知道是否这个猜想成立。然而,人们可以发现这样一双质数,...

杭电OJ水题

  • 2015年06月23日 16:30
  • 52KB
  • 下载

杭电152道水题 适合初学者参考

  • 2013年04月26日 19:20
  • 65KB
  • 下载

判断素数的几种方法 杭电OJ 1397

Problem Description Goldbach's Conjecture: For any even number n greater than or equal to 4, there e...

HDU--杭电--1240--Asteroids!--广搜--贴个水题别群殴我

Asteroids! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tot...

再来一发超级水题--HDOJ 杭电2043 密码

这个是绝对的水题。。 考察if语句以及字符串。。。 /***** problem source ********/ /******** written by C_Shit_Hu *****...

HDU--杭电--1372--Knight Moves--广搜--就是象棋里面‘马’走日一样走,水题

Knight Moves Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T...

杭电OJ——1039 Easier Done Than Said?(水题)

Easier Done Than Said? Problem Description Password security is a tricky thing. Users prefer...

杭电水题--1029 Clock

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1209 大意是,给你5个时间,都是mm::nn格式的,按照时针与分针之间的夹角排序,如果相等则...

杭电水题--1196 Lowest Bit (bitset:to_string有关问题)

题目地址:  http://acm.hdu.edu.cn/showproblem.php?pid=1196 题目很简单,把一个10进制数表示成二进制,然后求最后一个1的大小,即:88:二进制为:...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:杭电 1397 水题
举报原因:
原因补充:

(最多只允许输入30个字)