HDU1262 寻找素数对
来源:互联网 发布:软件测试经典案例 编辑:程序博客网 时间:2024/05/22 10:48
问题链接:HDU1262 寻找素数对
问题简述:参见上述链接。
问题分析:对于输入的偶数,先求得其一半的值,若不为奇数则减去1,然后从这个奇数开始从大到小用奇数试探。根据哥德巴赫猜想,一个偶数可以分解为两个素数之和,其中一个必然小于或等于这个偶数的一半。
有了上述的一个奇数p,对于输入的m来说,另外一个奇数就是m-p。
只要测试这两个奇数都是素数,就得到了差距最小的两个素数,输出即可。
程序说明:(略)。
AC的C语言程序如下:
/* HDU 1262 寻找素数对 */#include <stdio.h>#include <math.h>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;}
1 0
- hdu1262寻找素数对
- hdu1262-寻找素数对
- hdu1262 寻找素数对
- hdu1262寻找素数对
- hdu1262寻找素数对
- HDU1262 寻找素数对
- HDU1262-寻找素数对
- HDU1262:寻找素数对
- HDU1262——寻找素数对
- HDU1262:寻找素数对(简单数论)
- ACM-简单题之寻找素数对——hdu1262
- HDU1262 素数筛
- 寻找素数对
- 寻找素数对
- 寻找素数对
- hdoj1262 寻找素数对
- 寻找素数对
- HDU 寻找素数对
- 扣丁音乐(四)——本地音乐加载
- OBJ-C block + protocol 学习笔记
- CC2538内存分配问题
- 软件开发——软技能(背景)
- OBJ-C NSString + NSRange + NSMutableString 学习笔记
- HDU1262 寻找素数对
- 底部菜单栏之Fragment+FragmentHost实现
- Codeforces 674C Levels and Regions
- 路径中 斜杠/和反斜杠\ 的区别
- 地图与定位
- 底部菜单栏之Fragment+PopupWindow实现
- JAVA学习总结六
- 软件开发——软技能(〇、基础)
- 软件开发——软技能(一、IDE)