素数回文(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,把他每一位存下来,回文数已 ...
随机推荐
- 如何让一个input输入框居中
<div style="text-align:center;vertical-align:middel;"><input type="text" ...
- ASP.NET Core 2.0 多应用实现Cookie共享
前言 .NET Core 2.0 发布之后,在Authentication中间件部分,相关API有不少改动(官方文档),本文主要讲的就是实现应用Cookie共享,对Cookie中间件使用不了解的可以去 ...
- java中身份证号和的银行卡的深度校验
一: 身份证号: package com.mobile.utils; import java.text.SimpleDateFormat; import java.util.Calendar; imp ...
- 【sping揭秘】2、关于spring配置文件
<import>标签 引入其他的配置文件,如果A.xml 中的<bean>定义可能依赖B.xml中的某些<bean>定义,那么可以再A.xml中使用这种方式< ...
- docker学习实践之路[第三站]node站点部署
拉取node镜像 docker pull node 定制Dockerfile文件 FROM node EXPOSE ENTRYPOINT [ "node", "/www/ ...
- 封装、构造方法、private、Static与this关键字、main()_Day07
1:成员变量和局部变量的区别(理解) (1)定义位置区别: 成员变量:定义在类中,方法外. 局部变量:定义在方法中,或者方法声明上. (2)初始化值的区别: 成员变量:都有默 ...
- 【从0到1学Web前端】CSS定位问题三(相对定位,绝对定位) 分类: HTML+CSS 2015-05-29 23:01 842人阅读 评论(0) 收藏
引子: 开始的时候我想先要解决一个问题,怎么设置一个div盒子撑满整个屏幕? 看下面的html代码: <body> <div id="father-body"&g ...
- es-04-mapping和setting的建立
mapping和setting, 使用java客户端比较难组装, 可以使用python或者scala 这儿直接在kibana中进行DSL创建 1, mapping 创建索引的时候, 可以事先对数据进行 ...
- centos7 安装配置postgresql
考:https://www.linuxidc.com/Linux/2017-10/147536.htm http://blog.51cto.com/12482328/2090844 https://w ...
- linux比较文件夹的差异命令
可以使用 diff -ruNa s1 s2 或者使用 diff -uN c1 c2 结果如下: sandbox$ tree . |-- dir1 | |-- a.txt | `-- b.txt `-- ...