付翔的专栏
在鄙视中成长 记录成长的点滴
posts - 106,  comments - 32,  trackbacks - 0
   1. # include<stdio.h>  
   
2. # include<stdlib.h>  
   
3. # include<string.h>  
   
4. # include<math.h>  
   
5. unsigned long data[2000] ;  
   
6int count;  
   
7char str[20];  
   
8char str1[20];  
   
9char str2[20];  
  
10.   
  
11int cmp(const void *a,const void *b)  
  
12. {  
  
13.     return *(unsigned long *)a-*(unsigned long *)b;   
  
14. }   
  
15.   
  
16int issushu(unsigned long num)  
  
17. {  
  
18.   
  
19.     unsigned long i,j ,k = num;  
  
20.   
  
21.     for (j = (unsigned long)sqrt(k),i = 2;i <= j+1;i++)  
  
22.         if (num%i==0)  
  
23.             return 0;  
  
24.   
  
25.     return 1;  
  
26.   
  
27. }  
  
28void _itoah(int n,int digit )  
  
29. {  
  
30.     int i = 0;  
  
31.     for(i = 0;i < digit;i ++)  
  
32.     {  
  
33.         //str[digit-i-1] =  n%10 + '0';  
  34.         str[digit-i-1=  n%10 + '0';  
  
35.         n /=10;  
  
36.     }  
  
37.   
  
38. }  
  
39void _itoad(int n,int digit,int b )// 针对 奇数和偶数的不同 增加一个标志位  
  40. {  
  
41.     int i = 0,j = digit;  
  
42.     if(b==1)  
  
43.         digit ++;  
  
44.     for(i = 0;i < j;i ++)  
  
45.     {  
  
46.         str[digit++=  n%10 + '0';  
  
47.         n /=10;  
  
48.     }  
  
49. }  
  
50void even_huiwen(int n)  
  
51. {  
  
52.     long i ,j,digit = n/2,tmp = 0;  
  
53.     //j = (long)pow(10,digit) -1;  
  54.     j = (long)pow(10,digit) -1;  
  
55.     for(i = (long)pow(10,digit-1); i <= j;i++ ) //i代表偶数的高位//(long)pow(10,n-1); i <= j;i++ )  
  56.     {         
  
57.   
  
58.         _itoah(i,digit);  
  
59.         _itoad(i,digit,0);  
  
60.         str[n] = '\0';  
  
61.         strcpy(str1,str);  
  
62.         strrev(str1);  
  
63.         if (!strcmp(str1,str))  if(issushu(atol(str)))  
  
64.                 data[count ++= atol(str);//printf("%ld\t",atol(str)),data[count ++] = atol(str);  
  65.           
  
66.         memset(str,NULL,sizeof(str));  
  
67.         memset(str1,NULL,sizeof(str1));  
  
68.   
  
69.     }  
  
70. }  
  
71void odd_huiwen(int n)  
  
72. {  
  
73.     long i ,j,k,digit = n/2,tmp = 0;  
  
74.     j = (long)pow(10,digit) -1;  
  
75.   
  
76.     for(k = 0;k < 10; k ++// 奇数位中间的数字  
  77.         for (i = (long)pow(10,digit-1);i <= j ; i ++)  
  
78.         {  
  
79.             _itoah(i,digit);  
  
80.             str[digit] = k + '0';  
  
81.             _itoad(i,digit,1);  
  
82.             str[n] = '\0';  
  
83.             strcpy(str1,str);  
  
84.             strrev(str1);  
  
85.             if (!strcmp(str1,str)) if(issushu(atol(str)))  
  
86.                 data[count ++= atol(str);//printf("%ld\t",atol(str)),data[count ++] = atol(str);  
  87.   
  
88.             memset(str,NULL,sizeof(str));  
  
89.             memset(str1,NULL,sizeof(str1));  
  
90.         }  
  
91. }  
  
92int  main()  
  
93. {  
  
94.     unsigned long a,i,j,x,y;  
  
95.     data[0= 2,data[1= 3,data[2= 5,data[3= 7,data[4= 11;  
  
96.     //freopen("pprime1.out","w",stdout);  
  97.     count = 5;  
  
98.     int n;  
  
99.   
 
100.     //生产所有的回文素数  
 101.     for(int _digit = 3; _digit <= 8;_digit+=2)  
 
102.     {  
 
103.         if(_digit%2==0)  
 
104.             even_huiwen(_digit);  
 
105.         else  
 
106.             odd_huiwen(_digit);  
 
107.     }  
 
108.       
 
109.     qsort(data,count,sizeof(unsigned long ),cmp);  
 
110.     scanf("%d",&n);  
 
111.     while (n--)  
 
112.     {  
 
113.         scanf("%ld%ld",&x,&y);  
 
114.         for (i=0;data[i] <=y&&i<=count;i++)  
 
115.         {  
 
116.             if (data[i]>=x)  
 
117.                 printf("%ld\n",data[i]);  
 
118.         }  
 
119.           
 
120.     }  
 
121.   
 
122.     return 0;  
 
123.   
 
124. }  

posted on 2010-03-04 09:23 付翔 阅读(492) 评论(0)  编辑 收藏 引用 所属分类: ACM 数据结构

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理



<2010年7月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

常用链接

留言簿(2)

随笔分类

随笔档案

文章分类

文章档案

CSDN - 我的blog地址

博客

搜索

  •  

最新评论

阅读排行榜

评论排行榜