博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU1262 寻找素数对
阅读量:6209 次
发布时间:2019-06-21

本文共 982 字,大约阅读时间需要 3 分钟。

问题链接

问题简述参见上述链接。

问题分析对于输入的偶数,先求得其一半的值,若不为奇数则减去1,然后从这个奇数开始从大到小用奇数试探。根据哥德巴赫猜想,一个偶数可以分解为两个素数之和,其中一个必然小于或等于这个偶数的一半。

有了上述的一个奇数p,对于输入的m来说,另外一个奇数就是m-p。

只要测试这两个奇数都是素数,就得到了差距最小的两个素数,输出即可。

程序说明(略)。

AC的C语言程序如下:

/* HDU 1262 寻找素数对 */#include 
#include
int isprime(int n){ if(n == 3) return 1; int temp, i; temp = n % 6; if(temp != 1 && temp != 5) return 0; temp = sqrt(n); for(i=3; i<=temp; i+=2) if(n % i == 0) return 0; return 1;}int main(void){ int m, p; while(scanf("%d",&m)!=EOF) { p = m / 2; if(p % 2 == 0) p--; for(;;) { if(p <= 2) break; if(!isprime(p)) { p -= 2; continue; } if(isprime(m - p)) { printf("%d %d\n", p, m-p); break; } p -= 2; } } return 0;}

转载于:https://www.cnblogs.com/tigerisland/p/7564876.html

你可能感兴趣的文章
bzoj1622[Usaco2008 Open]Word Power 名字的能量*
查看>>
uitableview做九宫格
查看>>
相同的树
查看>>
tcl使用笔记
查看>>
退役前留帖
查看>>
二叉树的遍历
查看>>
C入门语言基础一[可移植性、涉及的三种文件、编程7个步骤、编译器、链接器]...
查看>>
Python3抓取 深圳房地产均价数据,通过真实数据为购置不动产做决策分析(一)...
查看>>
Rotating an array in place
查看>>
PL/SQL实现JAVA中的split()方法的小例子
查看>>
SOFARPC源码解析-搭建环境
查看>>
FreeBSd ports 安装软件
查看>>
Fast inverse square root
查看>>
FAQ: SBS 2011. The Windows SBS Manager service terminated unexpectedly
查看>>
判断一个坐标点是否在不规则多边形内部的算法
查看>>
jquery的checkbox,radio,select等方法总结
查看>>
不用Connectify,让win7分WiFi玩手机!
查看>>
[转]设置好ftp后用xftp连接提示无法打开,无法显示远程文件夹
查看>>
DIR - matlab函数
查看>>
Qt笔记-QAxContainer
查看>>