poj 1411 素数筛选
2014-11-09 18:48
309 查看
题意:两个素数满足l,r->l*r<=m和a/b<=(l/r)<=1
解法:素数筛选,暴力寻找
素数筛选的时候第二组j=i*i才行,要不超时,并且要用Longlong否则会RE
代码
/************************************************************************* > File Name: poj1411.cpp > Author: cy > Mail: 1002@qq.com > Created Time: 14/11/9 18:11:49 ************************************************************************/ #include<iostream> #include<cstring> #include <algorithm> #include<cstdlib> #include<vector> #include<cmath> #include<stdlib.h> #include<iomanip> #include<list> #include<deque> #include<map> #include <stdio.h> #include <queue> const int maxn=100000+5; #define inf 0x3f3f3f3f #define INF 0x3FFFFFFFFFFFFFFFLL #define rep(i,n) for(i=0;i<n;i++) #define reP(i,n) for(i=1;i<=n;i++) #define ull unsigned long long #define ll long long #define cle(a) memset(a,0,sizeof(a)) using namespace std; int m,a,b; int ip=0; int used[maxn]; int prime[maxn]; void init() { ll i,j; ip=0; cle(used); for(i=2;i<maxn;i++) { if(used[i]==0) { prime[ip++]=i; for(j=i*i;j<maxn;j+=i) { used[j]=1; } } } } int main() { #ifndef ONLINE_JUDGE freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); #endif init(); while(scanf("%d%d%d",&m,&a,&b)!=EOF) { if(m==0&&a==0&&b==0)break; int ans=0; int l,r;int i,j; for(i=0;i<ip;i++) { for(j=0;j<=i;j++) { int sum=prime[j]*prime[i]; if(sum>m)break; if(prime[j]*b>=prime[i]*a&&ans<sum){ ans=sum; l=prime[j]; r=prime[i]; } } } printf("%d %d\\n",l,r); } return 0; }
相关文章推荐
- poj 2689 线性时间筛选素数
- 素数筛选(2次):poj2689 Prime Distance
- POJ - 2262 - Goldbach's Conjecture(筛选素数)
- [ACM] POJ 2689 Prime Distance (大区间素数筛选)
- poj-2689素数筛选
- poj -- 2689 Prime Distance(筛选法求素数)
- poj 2689 Prime Distance (大素数的筛选)
- poj 2689(区间素数筛选)
- POJ 2689 Prime Distance (素数筛选法,大区间筛选)
- POJ 2773 Happy 2006#素数筛选+容斥原理+二分
- poj 2689 (素数二次筛选)
- [ACM] POJ 2689 Prime Distance (筛选范围大素数)
- POJ 2689 (素数的二次筛选)
- POJ 2689 Prime Distance 求素数距离(两次筛选)
- POJ 2689 Prime Distance 素数筛选 -
- POJ 2739 素数筛选
- POJ 2689 Prime Distance (素数+两次筛选)
- poj:2689--用筛选法选素数求区间[L,U]的所有素数
- POJ2739 Sum of Consecutive Prime Numbers【素数筛选+尺取法】
- poj 2689 (素数二次筛选)