素数回文(hdu1431)
素数回文
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 9266 Accepted Submission(s): 2167
能整除11的数的条件:数的偶数位和与奇数位和的差可整除11,
即整个数可以整除11.易证偶位回文数整除11.这样就缩小了查找的范围,
而且缩小了90%!!!
所以;除了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)的更多相关文章
- 素数回文(dfs,有bug)
素数回文 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- 4N - 素数回文
xiaoou33对既是素数又是回文的数特别感兴趣.比如说151既是素数又是个回文.现在xiaoou333想要你帮助他找出某个范围内的素数回文数,请你写个程序找出 a 跟b 之间满足条件的数.(5 &l ...
- F题 hdu 1431 素数回文
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1431 素数回文 Time Limit: 2000/1000 MS (Java/Others) M ...
- 题解报告:hdu 1431 素数回文
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1431 Problem Description xiaoou33对既是素数又是回文的数特别感兴趣.比如说 ...
- 12--c完数/最大公约数/最小公倍数/素数/回文数
完数/最大公约数/最小公倍数/素数/回文数 2015-04-08 10:33 296人阅读 评论(0) 收藏 举报 分类: C/C++(60) 哈尔滨工业大学(8) 版权声明:本文为博主原创文章 ...
- hdu 1431 素数回文(暴力打表,埃托色尼筛法)
这题开始想时,感觉给的范围5 <= a < b <= 100,000,000太大,开数组肯定爆内存,而且100000000也不敢循环,不超时你打我,反正我是不敢循环. 这题肯定得打表 ...
- NOI-OJ 1.13 ID:5 素数回文数的个数
整体思路 使用埃拉拖色尼算法提前计算出1000以内的素数表. 设计一个回文判断函数isHW(int n),难点在于数字回文的判断.一个简单的方法是将数字n使用sprintf输出在一个数组中,然后从数组 ...
- HDU 1431 素数回文 离线打表
题目描述:给定一个区间,将这个区间里所有既是素数又是回文数的数输出来. 题目分析:这题的这个数据范围比较大,达到了10^8级别,而且输入的数据有多组,又因为判断一个数是否是回文数貌似只有暴力判断,时间 ...
- HDU 1431 素数回文
有人问我这个问题. 个人感觉暴搜会TLE O(n*sqrt(n)).n=100000000:(推断素数用2~sqrt(n)+1 去除) 还是枚举好了. 枚举 1~10000,把他每一位存下来,回文数已 ...
随机推荐
- ConcurrentHashMap源码解析(2)
此文已由作者赵计刚授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. ConcurrentHashMap() /** * 创建ConcurrentHashMap ...
- AjaxResult
package com.sprucetec.tms.utils; /** * AjaxReturn * * @author Yinqiang Du * @date 2016/7/12 */import ...
- spark踩坑——dataframe写入hbase连接异常
最近测试环境基于shc[https://github.com/hortonworks-spark/shc]的hbase-connector总是异常连接不到zookeeper,看下报错日志: 18/06 ...
- <c:if test=""></c:if>如何判断空(使用例子)
<c:if test=""></c:if>如何判断空(使用例子) 标签: session / 前端 / c-if userName是登录的时候放到sessi ...
- 《UNIX环境网络编程》第十四章第14.9小结(bug)
1.源代码中的<sys/devpoll.h>头文件在我的CentOS7系统下的urs/include/sys/目录下没有找到. 而且我的CentOS7也不存在这个/dev/poll文件. ...
- POJ 2538
#include<string> //#include #include<stdio.h> #include<iostream> using namespace s ...
- NoSQL -- Redis使用
NoSQl简介: ubuntun CTRL+alt+F1 图形切换到命令行 CTRL+alt+F7 命令行切换到图形界面 redis介绍 + 实践 Redis是什么? Redis 安装 edis是当 ...
- android初探
随着nodejs的不断发展,前端的范围越来越大,所以,适当的了解移动端是非常有必要的,比如使用RN开发app,前端必须要和安卓工程师沟通共同开发,那么学习android的基本知识就很重要了,因为目前安 ...
- 函数指针与typedef
#include<bits/stdc++.h> using namespace std; //定义一个函数指针 typedef int (*Fun)(int,int); int add(i ...
- Mac 下配置 Python 开发环境
➜ ~ sudo brew install python3 ==> Downloading https://www.python.org/ftp/python/3.5.1/Python-3.5. ...