/*
时间限制:1秒 空间限制:32768K 热度指数:5113
校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,而非本地IDE。
题目描述
如果一个整数只能被1和自己整除,就称这个数是素数。 如果一个数正着反着都是一样,就称为这个数是回文数。例如:6, 66, 606, 6666 如果一个数字既是素数也是回文数,就称这个数是回文素数 牛牛现在给定一个区间[L, R],希望你能求出在这个区间内有多少个回文素数。
输入描述:
输入包括一行,一行中有两个整数(1 ≤ L ≤ R ≤ 1000)
输出描述:
输出一个整数,表示区间内回文素数个数。
示例1
输入
100 150
输出
2
*/
//回文素数
//https://www.nowcoder.com/practice/4802faa9afb54e458b93ed372e180f5c?tpId=90&tqId=30793&rp=10&ru=%2Factivity%2Foj&qru=%2Fta%2F2018test%2Fquestion-ranking&tPage=1 #include<stdio.h>#include<math.h>int exchange(int a);int prime(int a);int main(int argc,char *argv[]){ int m,n,i; int cnt=0; scanf("%d %d",&m,&n); for(i=m;i<=n;i++) { if(i==exchange(i)&&prime(i)==1) { //printf("%d %d\n",i,prime(i)); cnt++; } } if(m==1) { cnt--; } printf("%d",cnt); return 0;} int exchange(int a){ int t; int num=0; while(a>0) { t=a%10; num=num*10+t; a/=10; } a=num; return a;}int prime(int a){ int i; int t=1; for(i=2;i<=sqrt(a);i++) { if(i==1) { break; } if(a%i==0) { t=0; break; } } return t;}