poj3048--Max Factor(最大素数因子)
2012-09-20 17:56
323 查看
通过素数筛选,加输入时判断,效率不是很高
View Code
View Code
//Accepted 212K 204MS C++ 967B #include <cstdio> #include <memory.h> #include <algorithm> using namespace std; const int MAXN = 5001, MAXM = 20001,MAXPRIME=2262; bool is_prime[MAXM]; int prime[MAXPRIME]; int ans[MAXN]; void init_prime(void) { int i, j; fill(is_prime, is_prime + MAXM, true); for(is_prime[1] = false, i = 2; i * i <= MAXM; ++i) { if(is_prime[i]) { for(j = i + i; j <= MAXM; j += i) is_prime[j] = false; } } } void get_prime(void) { int len = 0; for(int i=2;i<MAXM;i++) if(is_prime[i]) prime[len++] = i; } int main(void) { init_prime(); get_prime(); int t,maxx,i,n,j,result; while(scanf("%d",&n)==1) { maxx = -1; for(i=0;i<n;i++) { scanf("%d",&ans[i]); t = 1; for(j=0;j<MAXPRIME;j++) { if(prime[j] > ans[i]) break; if(ans[i]%prime[j] == 0) t = j; } if(maxx < prime[t]) { maxx = prime[t]; result = ans[i]; } } printf("%d\n",result); } return 0; }
相关文章推荐
- POJ-3048 求有最大的素数因子的数
- POJ - 3048 区间数的最大质因子
- 【POJ 2886】 Who Gets the Most Candies?(反素数求最大因子数+线段树)
- POJ - 3048 (最大素因数)
- boj 1339 简单题 用递归找到最大素数因子即可
- hdoj2136 求数的最大素数因子
- POJ 2886Who Gets the Most Candies? 线段树+反素数求因子个数最多
- 【POJ】3048-Max Factor 筛法求素数
- hdu 2710 Max Factor(找最大素数)
- Max Factor(找最大素数)
- POJ 1811 Prime Test (大素数判断和素因子分解)
- HDU 2709 Max Factor (素数因子)
- 最大素数因子(hdu2136)
- HDU 5108 最大素数因子
- POJ 3048 Max Factor 笔记
- ny520 最大素因子 筛选法求素数
- 抓其根本(一)(hdu2710 Max Factor 素数 最大公约数 最小公倍数.....)
- poj 2739 Sum of Consecutive Prime Numbers (最大连续素数和)
- POJ 1811 Prime Test(大素数判断和素因子分解)
- poj 2739 Sum of Consecutive Prime Numbers (最大连续素数和)