hdu1239(Calling Extraterrestrial Intelligence Again 暴力搜索)
来源:互联网 发布:成绩统计软件 编辑:程序博客网 时间:2024/05/22 01:27
题意: 两个素数 p, q 并且 pq <= m and a / b <= p / q <= 1,4 < m <= 100000 and 1 <= a <= b <= 1000.求最大的q,p值
思路:暴力求解
因为 0.001<=a/b <= 1000 ,4 < m <= 100000 qp = m,
假设 p/q = 0.001,q*p = m = 100000,解得q<=p <= 10000;
说明q,p素数都不超过10000,打素数表,两个循环暴力,因为p/q不超过1,所以从p/q = 1 开始向下暴力
注意剪枝,当q*p > m ,a/b > p/q ,p/q > 1 都不往下搜。再用一个保存搜到的最大值
#include<iostream>#include<cstdio>#include<cmath>using namespace std;int p[15000] = {0};//素数表,只是标记1--x的数中那些不是素数int prim[1500] = {0};//保存的素数表int prime(int x)//筛法打表,并返回素数1————x的素数个数{ int i,j;p[1] = 1; for(i = 2; i <= sqrt(x); i++) { for(j = i+1; j <= x; j++ ) { if(j % i == 0 ) { p[j] = 1; } } } int k = 1; for(i = 1; i <= 10000;i++) { if(!p[i]) { prim[k++] = i; } } return k;}int main(){ int len = prime(10000); int mm,a,b; while( scanf("%d%d%d",&mm,&a,&b) ) { if(mm == 0 && a == 0 && b == 0 ) { break; } int i,j = 1; int c,d,sum = 0; for(i = len-1; i >= 1 ; i--) { for(j = i;j <= len-1; j++)//从1开始往下搜索 { if(prim[i]*prim[j] > mm || a*1.0/b > prim[i]*1.0/prim[j] || i*1.0/j > 1) { break; } else { if(sum < prim[i]*prim[j]) { sum = prim[i]*prim[j]; c = prim[i];d = prim[j]; } } } } printf("%d %d\n",c,d); } return 0;}
- hdu1239(Calling Extraterrestrial Intelligence Again 暴力搜索)
- HDU1239:Calling Extraterrestrial Intelligence Again
- HDU1239 Calling Extraterrestrial Intelligence Again
- HDU1239 Calling Extraterrestrial Intelligence Again (打表+暴力)
- hdu1239 Calling Extraterrestrial Intelligence Again (枚举)
- hdu1239 Calling Extraterrestrial Intelligence Again(贪心)
- HDU 1239 Calling Extraterrestrial Intelligence Again 【打表+暴力搜索】
- hdu1239 Calling Extraterrestrial Intelligence Again (小组赛C) 素数对
- 搜索 HOJ 1357 Calling Extraterrestrial Intelligence Again
- Calling Extraterrestrial Intelligence Again
- Calling Extraterrestrial Intelligence Again
- Calling Extraterrestrial Intelligence Again
- hdu 1239 Calling Extraterrestrial Intelligence Again (暴力枚举)
- 【HDU 1239】Calling Extraterrestrial Intelligence Again(素数+暴力)
- PKU1411 Calling Extraterrestrial Intelligence Again
- 1186 Calling Extraterrestrial Intelligence Again
- 1411 Calling Extraterrestrial Intelligence Again
- HDU Calling Extraterrestrial Intelligence Again
- javascript中可用的编码解码函数,有如下的组合:
- 嵌入式驱动之RS232串口
- VS2012创建的工程让VS2010可编译的方法
- Makefile之大型工程项目子目录Makefile的一种通用写法
- 第九周-项目3
- hdu1239(Calling Extraterrestrial Intelligence Again 暴力搜索)
- Linux Kernel 3.7.4/3.4.27/3.0.60 发布
- Jpetstore研究(二)配置文件分析
- 滑动门导航条
- HDU1229:还是A+B
- 水果忍者
- ashx如何用session(验证码)
- e-人事管理系统-人事档案-变更管理-功能模块
- 链接预览