[1008]harder_prime
素数定义:一个大于1的整数,如果它的约数如果只有1和它本身,那么它就是一个素数。
回文数定义:一个整数把它的各位数字倒过来还是它本身,那么它就是回文数,比如说2,99,393。
回文素数定义:一个数如果既是素数,也是回文数,那么我们就称它为回文数,比如说:7,11,131。
现在我们有n个数,需要你判断它们是不是回文素数。
【输入格式】
第一行仅一个数n(n<100),为要判断的数的个数。
接下来n行,每行有一个数x(x<1,000,000,000),即为要你判断的数。
【输出格式】
共有n行,每行有一个单词,对于每个x,如果x是回文素数,则输出“Yes”,否则输出“No”(不包括引号,注意大小写)。
【输入样例】
3
7
12
121
【输出样例】
Yes
No
No
【数据范围】
40%的数据:n<=10,x<1,000
70%的数据:n<=50,x<100,000
100%的数据:n<100,x<1,000,000,000
Hint
回文数的判断,质数的判断。
优化质数判断的算法。
我的
#include<stdio.h>
#include<math.h>//sqrt()需要用到这个头文件,莫忘!!!
int main() {
long long n, sum = , x, i;//long long的最大值:9223372036854775807
int flag = , yu;//longlong的最小值:-9223372036854775808
scanf("%lld", &n);//注意为%lld,经常忘记
while (n--) {
scanf("%lld", &x);
long long zhong = sqrt(x);//本来想用x/2的,结果会超时,故用最正确的算法
for (i = ; i <= zhong; i++) {
if (x % i == ) {
flag = ;
break;
}
}
for (i = x; i != ; i /= ) {//将数字颠倒过来的办法
yu = i % ;
sum = sum * + yu;
}
if (sum != x)
flag = ;
if (flag == )
printf("Yes\n");
else
printf("No\n");
flag = ;
sum = ;
}
return ;
}
求解回文数的算法:
一个整数把它的各位数字倒过来还是它本身,所以主要是将数字倒过来
比如你输入的数是12321:
循环开始前:m=12321,sum=0;
第1次循环结束:m=1232,sum=1;
第2次循环结束:m=123,sum = 12;
第3次循环结束:m=12,sum=123;
第4次循环结束:m=1,sum=1232;
第5次循环结束:m=0,sum=12321。
输入的是几位数就循环几次。
判断的思路就是,通过循环依次把m的个位,十位,百位...上的数取出来,与sum*10相加。这样得到的数sum就是m颠倒之后的数,如果两者相等,那就是回文数。
[1008]harder_prime的更多相关文章
- HDOJ 1008. Elevator 简单模拟水题
Elevator Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...
- poj 1008:Maya Calendar(模拟题,玛雅日历转换)
Maya Calendar Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 64795 Accepted: 19978 D ...
- POJ 1008 Maya Calendar
链接:http://poj.org/problem?id=1008 Maya Calendar Time Limit: 1000MS Memory Limit: 10000K Total Subm ...
- BZOJ 1008 题解
1008: [HNOI2008]越狱 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 7845 Solved: 3359[Submit][Status] ...
- HDU 4777 Rabbit Kingdom (2013杭州赛区1008题,预处理,树状数组)
Rabbit Kingdom Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- 【BZOJ】1008: [HNOI2008]越狱(快速幂)
http://www.lydsy.com/JudgeOnline/problem.php?id=1008 刚开始看不会做啊,以为是dp,但是数据太大!!!所以一定有log的算法或者O1的算法,,,,还 ...
- PAT (Top Level) Practise 1008 Airline Routes(Tarjan模版题)
1008. Airline Routes (35) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue Given a ...
- PAT乙级 1008. 数组元素循环右移问题 (20)
1008. 数组元素循环右移问题 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 一个数组A中存有N(N>0)个整数,在不允 ...
- [ZOJ 1008]Gnome Tetravex (dfs搜索 + 小优化)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1008 题目大意:给你n*n的矩阵,每个格子里有4个三角形,分别是 ...
随机推荐
- Mac 终端命令大全
目录操作 命令名 功能描述 使用举例 mkdir 创建一个目录 mkdir dirname rmdir 删除一个目录 rmdir dirname mvdir 移动或重命名一个目录 mvdir dir1 ...
- JavaBean的toString方法工具类
import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.r ...
- HR常用事务代码
HR TCODE 描述 PA30 维护人力资源主数据 PA40 人事活动
- XUtils
//HttpUtils实例化对象 HttpUtils http = new HttpUtils(); /* *发送请求send(HttpMethod ...
- Reverse链表 递归实现
#include<iostream> struct node{ int payload; node* next; }; void bianli(node* head){ node* ite ...
- 使用spring-data-redis做缓存
说到缓存,首先肯定是spring-cache了. spring-cache使用一个CacheManager来进行管理缓存,为了使用我们的redis作为缓存源,需要向spring注册一个CacheMan ...
- (三)Bootstrap.jar
catalina.bat 在最后启动了bootstrap.jar, 传递了start作为参数(如果多个参数的话,start在尾部). 然后org.apache.catalina.startup.Boo ...
- JDK、JRE、JVM三者间的关系
JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE.Java工具和Java基础类库.Java Runtime Enviro ...
- 说说C#的async和await 解决卡顿问题 转
C# 5.0中引入了async 和 await.这两个关键字可以让你更方便的写出异步代码. 看个例子: 可以看到,async和await关键字只是把上面的代码变得更简单易懂而已. public cla ...
- 使用 KGDB 调试 Kernel On Red Hat Linux
1. KGDB 简介 KGDB 提供了一种使用 GDB 调试 Linux 内核的机制.使用 KGDB 可以象调试普通的应用程序那样,在内核中进行设置断点.检查变量值.单步跟踪程序运行 ...