USACO:Prime Palindromes
2013-01-26 14:59
351 查看
枚举枚举枚举
/* ID: Jang Lawrence PROG: pprime LANG: C++ */ #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<queue> using namespace std; int l,r; int p[10001]; bool is[10001]; vector<int> ans; char a[11]; int n; int turn() { int res=0; for(int i=(n+1)/2+1;i<=n;++i) a[i]=a[n+1-i]; for(int i=1;i<=n;++i) res=(res*10)+a[i]-'0'; return res; } bool f(int x) { for(int i=0;p[i]*p[i]<=x;++i) if(x%p[i]==0) return false; return 1; } void dfs(int k) { if(k==(n+1)/2+1) { int x=turn(); if(f(x)) ans.push_back(x); return ; } int i=0; if(k==1) i=1; for(;i<=9;++i) { a[k]='0'+i; dfs(k+1); } } int main() { #ifndef DEBUG freopen("pprime.in","r",stdin); freopen("pprime.out","w",stdout); #endif int t=0; for(int i=2;i<=10000;++i) if(!is[i]) { p[t++]=i; for(int j=2*i;j<=10000;j+=i) is[j]=1; } for(n=1;n<=8;++n) dfs(1); scanf("%d%d",&l,&r); int nu=lower_bound(ans.begin(),ans.end(),l)-ans.begin(); for(;nu<ans.size()&&ans[nu]<=r;++nu) printf("%d\n",ans[nu]); return 0; }
相关文章推荐
- USACO: Section 1.5 -- PROB Prime Palindromes
- USACO 1.5 Prime Palindromes
- USACO-cha1-sec1.5 Prime Palindromes
- USACO 1.5 Prime Palindromes(枚举)
- USACO Section1.5 Prime Palindromes 解题报告
- usaco Prime Palindromes
- USACO1.5]回文质数 Prime Palindromes
- P1217 [USACO1.5]回文质数 Prime Palindromes
- USACO-Section 1.5 Prime Palindromes(Miller-Rabin)
- Prime Palindromes(USACO Gateway)的判定
- USACO Prime Palindromes
- usaco Prime Palindromes
- 【USACO】Prime Palindromes(暴力暴力再暴力)
- 数组去重 usaco Prime Palindromes
- USACO1.5.2--Prime Palindromes
- USACO Prime Palindromes
- USACO1.52 Prime Palindromes
- USACO 1.5-Prime Palindromes
- usaco - Prime Palindromes
- USACO Section 1.5 Prime Palindromes