XDOJ1038 - Qinz大牛猜想
来源:互联网 发布:百度帐号申诉网络异常 编辑:程序博客网 时间:2024/06/07 05:33
Description
Qinz大牛很爱猜想,所以经常能在比赛中YY出一些公式,并取得出其不意的效果。Qinz大牛坐火车去深圳实习,在漫长无聊的火车上,大牛又提出了一个想,“1+1=2”,他想一个数是否都能分解为两个奇素数的和呢?如果能的话,那一共会有多少对这样的数呢?(p1+p2=n,p2+p1=n,只能算一组)并将这样的数对定义为Qinz对,Qinz大牛没有带电脑,但他又很想知道他的这个猜想是否正确。现在由你来回答这个问题。
后来Qinz大牛发现他和哥德巴赫大牛不谋而合。并为此得意很久。
Input
第一行T,表示测试用例数,接下来T组测试用例
每一组测试用例有一个输入N(4<=N<=2^15),表示要分解的数。
每一组测试用例有一个输入N(4<=N<=2^15),表示要分解的数。
Output
只有一行,输出答案
Sample Input
4
5
8
10
32768
5
8
10
32768
Sample Output
0
1
2
244
1
2
244
Hint
10=3+7,10=5+5,所以有两组这样的数
10=3+7,10=7+3算一组。
解题思路:
主要考察的就是素数的判断,不多说。
#include<iostream>using namespace std;const int INF = 32770;bool isPrime[INF];int primes[INF/6];void getPrimes(){ for(int i=0;i<INF;++i) isPrime[i] = true; int t = 0; for(int i=2;i<INF;++i) { if(isPrime[i]) { for(int j=i+i;j<INF;j+=i) { isPrime[j] = false; } primes[t++] = i; } }}int Qinz(int num){ int t = 0; for(int i=1;primes[i]<=num/2;++i) { if(isPrime[num-primes[i]]) ++t; } return t;}int main(){ int T; cin>>T; getPrimes(); for(int test=0;test<T;++test) { int N; cin>>N; if(N%2==1) { cout<<0<<endl; continue; } cout<<Qinz(N)<<endl; } return 0;}
0 0
- XDOJ1038 - Qinz大牛猜想
- XDOJ1043--Qinz大牛的 烦恼
- 苹果 WWDC 大猜想
- XDOJ1042 - Qinz喝饮料
- 股市大涨 再次猜想
- 改变的五大猜想
- 未来十年人工智能趋势大猜想
- 下周走势五大猜想?下周股票走势
- 分析下周股市五大猜想
- 6-1 股市大涨之猜想。
- 更宽更薄?iPhone6的4大猜想
- 有关编程的12大猜想
- 未来编程的9大猜想
- 未来编程的9大猜想
- 猜想
- 猜想
- XDU Problem 1039 - Qinz`s Game
- XDU 1042 Qinz喝饮料(模拟)
- Codeforces Round #262 (Div. 2)
- quote symbol expected异常
- 金士顿无线网络驱动器内部监督办公室的Wi-Fi无线加载服务器现在发货
- tarjan算法
- Ubuntu14.04--SUMO--Omnet++和Veins
- XDOJ1038 - Qinz大牛猜想
- 127.0.0.1
- 善用佳软,巧制艺术特效字(合集+多图)
- JAVA操作properties文件
- 谷歌测试版即时显然,推出了以IOS设备
- 迅速彻底明白android 生命周期
- 正则表达式的一些例子
- 谷歌信息在Android 7艾诺诺7极光笔记本和上网本平板电脑
- 解锁摩托罗拉Milestone采用即时解锁码