版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42449444/article/details/88246612
题目描述:
如果一个整数只能被1和自己整除,就称这个数是素数。 如果一个数正着反着都是一样,就称为这个数是回文数。例如:6, 66, 606, 6666 如果一个数字既是素数也是回文数,就称这个数是回文素数 牛牛现在给定一个区间[L, R],希望你能求出在这个区间内有多少个回文素数。
输入描述:
输入包括一行,一行中有两个整数(1 ≤ L ≤ R ≤ 1000)。
输出描述:
输出一个整数,表示区间内回文素数个数。
输入样例:
代码语言:javascript复制100 150
输出样例:
代码语言:javascript复制2
解题思路:
爱奇艺校招的一道水题,写俩个功能函数,一个用来判断是不是回文数,另一个用来判断是不是素数。然后无脑for循环统计[L,R]这个区间内有多少回文素数就行了。
AC代码:
代码语言:javascript复制#include <bits/stdc .h>
using namespace std;
bool isPrime(int n)
{
if(n <= 1)
{
return false;
}
for(int i = 2; i <= sqrt(n); i )
{
if(n%i == 0)
{
return false;
}
}
return true;
}
bool isHW(int n)
{
string s1 = to_string(n);
string s2 = s1;
reverse(s1.begin(),s1.end());
if(s1 == s2)
{
return true;
}
return false;
}
int main()
{
int L,R;
cin >> L >> R;
int cnt = 0;
for(int i = L; i <= R; i )
{
if(isPrime(i) && isHW(i))
{
cnt ;
}
}
cout << cnt << endl;
return 0;
}