[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个三角形,分别是 ...
随机推荐
- Sum All Primes
function sumPrimes(num) { //return num; var arr = []; var ifPrime = function(num){ if(num < 2){ r ...
- JavaScript基础认知
此文只适用于初学者,大神们就不要看了,嘿嘿~ 一.定义变量 关键字 var,由此关键字定义变量,例如:var a =21:就把21这个数定义给了变量a 二.基本数据类型 1.Number类型 表示数字 ...
- 自定义View的学习(一) 自绘制控件
一.自绘控件 就是自己绘制的控件,通过onDraw()方法将控件绘制出来 自定义一个可点击的View 这个View可以记住用户点击的次数 public class CounterView exte ...
- Reverse链表 递归实现
#include<iostream> struct node{ int payload; node* next; }; void bianli(node* head){ node* ite ...
- Python:线程
Python中创建线程有两种方式:函数或者用类来创建线程对象. 函数式:调用 _thread 模块中的start_new_thread()函数来产生新线程. 类:创建threading.Thread的 ...
- mysql load file
1.MySql加载本地文件至数据库 -- 加载本地数据文件 Load Data InFile 'localfile' Into Table datatablename Fields Terminate ...
- django搭建论坛之一环境配置
环境情况: Description: Ubuntu 15.04 Python版本: Python 2.7.9 django版本: 1.8.4 安装django: pip install ...
- C#图片压缩处理算法
原文链接:http://blog.csdn.net/szstephenzhou/article/details/38900345
- HTML超标记语言
Html超文本标记语言,负责描绘Web世界的骨架. 〇.工具 http;//www.w3cchool.com.cn 一.Tim Bemers Lee 万维网之父: Html设计者: W3C创始人: ...
- (待续)C#语言中的动态数组(ArrayList)模拟常用页面置换算法(FIFO、LRU、Optimal)
目录 00 简介 01 算法概述 02 公用方法与变量解释 03 先进先出置换算法(FIFO) 04 最近最久未使用(LRU)算法 05 最佳置换算法(OPT) 00 简介 页面置换算法主要是记录内存 ...