hdu 1262 寻找素数对(素数的判断,快速筛选素数)
来源:互联网 发布:公需课挂机软件 编辑:程序博客网 时间:2024/05/16 14:59
寻找素数对
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uDescription
哥德巴赫猜想大家都知道一点吧.我们现在不是想证明这个结论,而是想在程序语言内部能够表示的数集中,任意取出一个偶数,来寻找两个素数,使得其和等于该偶数.
做好了这件实事,就能说明这个猜想是成立的.
由于可以有不同的素数对来表示同一个偶数,所以专门要求所寻找的素数对是两个值最相近的.
做好了这件实事,就能说明这个猜想是成立的.
由于可以有不同的素数对来表示同一个偶数,所以专门要求所寻找的素数对是两个值最相近的.
Input
输入中是一些偶整数M(5<M<=10000).
Output
对于每个偶数,输出两个彼此最接近的素数,其和等于该偶数.
Sample Input
20 30 40
Sample Output
7 1313 1717 23
素数的操作,要想不超时,那就要打表,既然打表,就用比较快的打表方式,素数快速打表
打好表以后,就从中间开始往前遍历,找到合数的就输出,然后跳出循环
附上代码:
#include <iostream>#include <cstring>#include <algorithm>#include <cmath>using namespace std;const int MAXN=10010;bool notprime[MAXN];//值为false表示素数,值为true表示非素数 void init() { memset(notprime,false,sizeof(notprime));notprime[0]=notprime[1]=true;for(int i=2;i<MAXN;i++){if(!notprime[i]){if(i>MAXN/i)continue;for(int j=i*i;j<MAXN;j+=i) // i 为素数,i 的倍数都不是 素数notprime[j]=true;}}}int main(){init();int n;while(~scanf("%d",&n)){for(int i = n / 2;i >= 1;i--){if(!notprime[i] && !notprime[n - i]) {printf("%d %d\n",i,n - i);break;}}}return 0;}
0 0
- hdu 1262 寻找素数对(素数的判断,快速筛选素数)
- HDU 1262 寻找素数对(素数筛选法)
- HDU 1262 寻找素数对 数论-素数
- HDU 1262 寻找素数对(素数)
- hdoj 寻找素数对 1262 (素数判断)
- HDU 1262 寻找素数对
- hdu 1262 寻找素数对
- HDU 1262 寻找素数对
- hdu-1262-寻找素数对
- hdu 1262 寻找素数对
- hdu 1262 寻找素数对
- hdu-1262-寻找素数对
- HDU 1262 寻找素数对
- hdu-1262-寻找素数对
- HDU 1262 寻找素数对
- 寻找素数对 HDU 1262
- hdu 1262寻找素数对
- HDU 1262 寻找素数对
- 2016 百度之星 D题
- 硬币问题(DP)
- 【Android动画九章】-属性动画ObjectAnimator
- [C++]Random库--正态分布
- 基础真的很重要
- hdu 1262 寻找素数对(素数的判断,快速筛选素数)
- 商业研究(17):以小见大,看互联网经济(4个股权众筹平台,4个领域,10个项目,8个图)
- bat脚本(定时+隐藏+开机运行)
- CSS Hack解决两个阵营:①IE8、IE9②IE6、IE7、FireFox
- linux驱动模板
- Java 常用排序算法/程序员必须掌握的 8大排序算法
- 2016"百度之星" - 资格赛(Astar Round1)Problem B (大整数+组合数)
- nyoj546Divideing Jewels (多重背包问题 + 详解 )
- 使用微信登录APP