摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2161没有什么难度,不过要注意本题2不是素数。#include"stdio.h"#include"string.h"#include"stdlib.h"bool prime[16005];void IsPrime(){ int i,j,t; memset(prime,true,sizeof(prime)); prime[0]=prime[1]=false; prime[2]=false; prime[3]=true; for(i=4;i<=16 阅读全文
posted @ 2013-08-17 21:26 天际。 阅读(336) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2098用筛法标记素数,这道题就简单了。不过有一点需要注意就是,要拆分成不同的素数,这就解释了为什么26这组数据输出2、#include"stdio.h"#include"string.h"#include"stdlib.h"bool prime[10005];void IsPrime(){ int i,j,t; memset(prime,true,sizeof(prime)); prime[0]=prime[1]=false; prime[2]=tr 阅读全文
posted @ 2013-08-17 16:37 天际。 阅读(439) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1431这道题,我也就特么错了27次而已!!主要用到筛法计算素数。27次错出不少经验:1.bool prime[];标记是否为素数时要用bool,别用int,bool只占一个字节,用int超内存。 2.先判断是否是回文,再判断是否是素数!否者超时。 3.由大神打表可知,10^7~10^8之间没有素数回文数,也就是说计算的时候只要算到10^7就可以了,也就是最大的回文素数就是9989899,所以数组只要开到这个数就够了。但是!即使最大回文是9989899,也要对比它... 阅读全文
posted @ 2013-08-17 15:53 天际。 阅读(556) 评论(0) 推荐(0) 编辑