素数回文

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 9266    Accepted Submission(s): 2167

Problem Description
xiaoou33对既是素数又是回文的数特别感兴趣。比如说151既是素数又是个回文。现在xiaoou333想要你帮助他找出某个范围内的素数回文数,请你写个程序找出 a 跟b 之间满足条件的数。(5 <= a < b <= 100,000,000);
 
Input
这里有许多组数据,每组包括两组数据a跟b。
 
Output
对每一组数据,按从小到大输出a,b之间所有满足条件的素数回文数(包括a跟b)每组数据之后空一行。
 
Sample Input
5 500
 
Sample Output
5
7
11
101
131
151
181
191
313
353
373
383
 
这道题的数据有点大,第一是素数其次是回文数,所以不管哪个都很容易超内存,
所以优化是必须的。
那么就好先了解一下回文数和素数的性质。。。
回文数:偶位数回文数必整除11.先温习一下忘掉多年的知识,
    能整除11的数的条件:数的偶数位和与奇数位和的差可整除11,
    即整个数可以整除11.易证偶位回文数整除11.这样就缩小了查找的范围,
    而且缩小了90%!!!
素数:只能被自身和1整除的数。。。
 

所以;除了11是回文素数以外,其他偶数位回文数均可被11整除并且是合数,

然后就枚举1位3位5位7位9位数的数,然后判断是否为素数即可!!!

本人不才只能想到这菜鸟的思路了,不过浅显易懂啊!o(∩_∩)o 哈哈!

ps:http://acm.hdu.edu.cn/showproblem.php?pid=1431

#include<stdio.h>
__int64 a,b; bool judge(__int64 x)//判断素数
{
for(int i=;i*i<=x;i++)
if(x%i==)
return false;
return true;
} void solve()
{
__int64 ans,i,j,k,m,r;
if(a<=) //1位素数和11
{
for(i=a;i<=;i++)
{
if(i>b)
return ;
if(judge(i))
printf("%I64d\n",i);
}
}
if(b>) //3位数时
{
for(i=;i<=;i+=)
for(j=;j<=;j++)
{
ans = i*+j*;
if(ans>=a&&ans<=b&&judge(ans))
printf("%I64d\n",ans);
if(ans>=b)
return;
}
} if(b>) //5位数时
{
for(i=;i<=;i+=)
for(j=;j<=;j++)
for(k=;k<=;k++)
{
ans = i*+j*+k*;
if(ans>=a&&ans<=b&&judge(ans))
printf("%I64d\n",ans);
if(ans>=b)
return;
}
} if(b>) //7位数时
{
for(i=;i<=;i+=)
for(j=;j<=;j++)
for(k=;k<=;k++)
for(m=;m<=;m++)
{
ans = i*+j*+k*+m*;
if(ans>=a&&ans<=b&&judge(ans))
printf("%I64d\n",ans);
if(ans>=b)
return;
}
} if(b>) //9位数时
{
for(i=;i<=;i+=)
for(j=;j<=;j++)
for(k=;k<=;k++)
for(m=;m<=;m++)
for(r=;r<=;r++)
{
ans = i*+j*+k*+m*+r*;
if(ans>=a&&ans<=b&&judge(ans))
printf("%I64d\n",ans);
if(ans>=b)
return;
}
} } int main()
{
while(scanf("%I64d%I64d",&a,&b)!=EOF)
{
if(a>b)
{
a=a^b;
b=a^b;
a=a^b;
}
solve();
printf("\n");
}
return ;
}

吐槽:寒假要在家编程真的是。。。。。无力啊!早上又起不来,,,然后关键是心不静啊!(┬_┬)

素数回文(hdu1431)的更多相关文章

  1. 素数回文(dfs,有bug)

    素数回文 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  2. 4N - 素数回文

    xiaoou33对既是素数又是回文的数特别感兴趣.比如说151既是素数又是个回文.现在xiaoou333想要你帮助他找出某个范围内的素数回文数,请你写个程序找出 a 跟b 之间满足条件的数.(5 &l ...

  3. F题 hdu 1431 素数回文

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1431 素数回文 Time Limit: 2000/1000 MS (Java/Others)    M ...

  4. 题解报告:hdu 1431 素数回文

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1431 Problem Description xiaoou33对既是素数又是回文的数特别感兴趣.比如说 ...

  5. 12--c完数/最大公约数/最小公倍数/素数/回文数

    完数/最大公约数/最小公倍数/素数/回文数 2015-04-08 10:33 296人阅读 评论(0) 收藏 举报  分类: C/C++(60)  哈尔滨工业大学(8)  版权声明:本文为博主原创文章 ...

  6. hdu 1431 素数回文(暴力打表,埃托色尼筛法)

    这题开始想时,感觉给的范围5 <= a < b <= 100,000,000太大,开数组肯定爆内存,而且100000000也不敢循环,不超时你打我,反正我是不敢循环. 这题肯定得打表 ...

  7. NOI-OJ 1.13 ID:5 素数回文数的个数

    整体思路 使用埃拉拖色尼算法提前计算出1000以内的素数表. 设计一个回文判断函数isHW(int n),难点在于数字回文的判断.一个简单的方法是将数字n使用sprintf输出在一个数组中,然后从数组 ...

  8. HDU 1431 素数回文 离线打表

    题目描述:给定一个区间,将这个区间里所有既是素数又是回文数的数输出来. 题目分析:这题的这个数据范围比较大,达到了10^8级别,而且输入的数据有多组,又因为判断一个数是否是回文数貌似只有暴力判断,时间 ...

  9. HDU 1431 素数回文

    有人问我这个问题. 个人感觉暴搜会TLE O(n*sqrt(n)).n=100000000:(推断素数用2~sqrt(n)+1 去除) 还是枚举好了. 枚举 1~10000,把他每一位存下来,回文数已 ...

随机推荐

  1. Entity Framework 6 多对多增改操作指南

    问题描述 在很多系统中,存在多对多关系的维护.如下图: 这种多对多结构在数据库中大部分有三个数据表,其中两个主表,还有一个关联表,关联表至少两个字段,即左表主键.右表主键. 如上图,其中的Suppli ...

  2. file-loader引起的html-webpack-plugin坑

    引言 最近,我们的一个后台系统要改版为基于react + redux + react-router + ant-design 技术栈,切换到当下比较新的技术来实现后台系统:在项目实施过程中,选择了基于 ...

  3. Android sharedUserId 和系统权限

    sharedUserId 给不同的应用使用同一个 sharedUserId 可以运行在这几个应用间互相访问数据(数据库,SharedPreferences,文件). sharedUserId 一旦使用 ...

  4. Pyhon 中文编码问题(字符串前加‘U’)

    中文编码问题是用中文的程序员经常头大的问题,在python下也是如此,那么应该怎么理解和解决python的编码问题呢? 我们要知道python内部使用的是unicode编码,而外部却要面对千奇百怪的各 ...

  5. C语言Socket-模拟远程CMD(客户端向服务器发送命令,服务器执行该命令)

    服务端(server) #include <stdio.h> #include <winsock2.h> #pragma comment(lib,"ws2_32.li ...

  6. Git-遇到的问题以及解决方法

    1.将本地内容推送到远程仓库后,远程仓库里的文件夹不可点击 原因:在本地添加文件夹A时,又在A里使用了git init命令 解决:删除文件夹A,再重新添加过 2.其他人推送不了内容到远程仓库 原因:权 ...

  7. saltstack returners 结果转存

    returners 是saltstack对minion执行操作后,对返回的数据进行存储,可以存储到一个文件或者数据库当中. 支持的returners http://docs.saltstack.cn/ ...

  8. C++ Enum 转 Lua Table工具

    C++ Enum转Lua Table工具 观察C++ Enum结构 总结结构 enum GameMessage { //******* ///****************** GM_GAMESER ...

  9. 【liferay】4、liferay的权限体系

    liferay中有几个概念 1.user_ 表存放liferay的用户 2.usergroup 用户组 3.角色 4.组织,组织可以是站点的成员 5.站点 6.团队 liferay中所有的东西都被视为 ...

  10. 03-03 java 顺序语句结构,选择结构if语句

    顺序结构: /* 流程控制语句:可以控制程序的执行流程. 分类: 顺序结构 选择结构 循环结构 顺序结构: 从上往下,依次执行. */ class ShunXuJieGouDemo { public ...