回文素数

2019-11-08 11:38:41 浏览数 (1)

版权声明:本文为博主原创文章,遵循 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;
}

0 人点赞