2013年11月3日 星期日

[USACO] 1-5-2 Prime Palindromes

/*
ID: 551100k1
LANG: C++
TASK: pprime
*/
#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;
vector<int> vec;
int dec[100]={1,10,100,1000,10000,100000};
int len(int x){
   int k=0;
   while(x){
      k++;
      x/=10;
   }
   return k;
}
int re(int x){
   int k=0,a=0;
   while(x){
      k++;
      a=a*10+x%10;
      x/=10;
   }
   return a;   
}
bool is(long long int x){
   long long int i;
   for(i=2;i*i<=x;i++)
      if(x%i==0) return 0;
   return 1;
}
int main(){
   freopen("pprime.in","r",stdin);
   freopen("pprime.out","w",stdout);
   int i,j,a,n,m;
   scanf("%d%d",&n,&m);
   for(i=0;i<=9999;i++){
      a=i*dec[len(i)]+re(i);
      if(a>=n && a<=m && is(a))
         printf("%d\n",a);
      for(j=0;j<=9;j++){
         a=i*dec[len(i)+1]+j*dec[len(i)]+re(i);
         if(a>=n && a<=m && is(a))
            printf("%d\n",a);  
      }
   }
}

沒有留言:

張貼留言